有無比較好的方法交換兩張單據內容 |
答題得分者是:VICSYS
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
已知兩張A、B單據要交換內容,
辦法有二 1.新增另一張單號C 2.Insert C from B 3.Delete B 4.Insert B from A 5.Delete A 6.Insert A from C 第二個辦法 Update B from table Set FieldA=t.FieldA....... ( select * from table where BilNO=A ) as t where BilNO=B 第二個辦法比較簡便,問題是MS-Sql2000語法檢查沒辦法過 請問前輩有無好的意見...Delphi端或Sql端皆可..謝謝您! |
ace33022
一般會員 發表:2 回覆:41 積分:23 註冊:2004-05-14 發送簡訊給我 |
===================引 用 pedro756901 文 章=================== 已知兩張A、B單據要交換內容, 辦法有二 1.新增另一張單號C 2.Insert C from B 3.Delete B 4.Insert B from A 5.Delete A 6.Insert A from C 第二個辦法 Update B from table Set FieldA=t.FieldA....... ( select * from table where BilNO=A ) as t where BilNO=B 第二個辦法比較簡便,問題是MS-Sql2000語法檢查沒辦法過 請問前輩有無好的意見...Delphi端或Sql端皆可..謝謝您! //-------------------------------------------------------------------------- 第二個方法好像是蓋過去,不太像是交換 @@a 個人的話會採用第一種,用Delphi的TQuery來組出Insert與Update語法,再來處理應該比較簡便。 |
chamstar
一般會員 發表:24 回覆:36 積分:12 註冊:2004-10-16 發送簡訊給我 |
update A set FieldA=b.FieldA from A a inner join B b on a.Id=b.Id
===================引 用 pedro756901 文 章=================== 已知兩張A、B單據要交換內容, 辦法有二 1.新增另一張單號C 2.Insert C from B 3.Delete B 4.Insert B from A 5.Delete A 6.Insert A from C 第二個辦法 Update B from table Set FieldA=t.FieldA....... ( select * from table where BilNO=A ) as t where BilNO=B 第二個辦法比較簡便,問題是MS-Sql2000語法檢查沒辦法過 請問前輩有無好的意見...Delphi端或Sql端皆可..謝謝您! |
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
一張單據 需要用一個Table存?
兩張單據要用到兩個 Table??? 理論上 應該是在同一個Table吧 Update PK_Field_Value = c From Table Where PK_Field_Value = a Update PK_Field_Value = a From Table Where PK_Field_Value = b Update PK_Field_Value = b From Table Where PK_Field_Value = c
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
就小弟的理解
假設有兩張進貨單因故 表頭的部份資料及表身的全部資料要互換 其實就是表頭資料表的某兩筆資料的某些欄位的資料要互換 以及表身的表單編號欄位的資料要互換 <textarea class="delphi" rows="10" cols="60" name="code"> update PurchaseDetail Set Purchase_No = '20070800003' where Purchase_No = '20070800001'; update PurchaseDetail Set Purchase_No = '20070800001' where Purchase_No = '20070800002'; update PurchaseDetail Set Purchase_No = '20070800002' where Purchase_No = '20070800003'; update PurchaseMaster Set Total_Cost = (select sum(price * quantity) from PurchaseDetail Where Purchase_No = '20070800001') Where Purchase_No = '20070800001'; update PurchaseMaster Set Total_Cost = (select sum(price * quantity) from PurchaseDetail Where Purchase_No = '20070800002') Where Purchase_No = '20070800002'; declare @vendor_id as varchar(10); declare @warehouse as tinyint; select @vendor_id = vendor , @warehouse = warehouse from PurchaseMaster where Purchase_No = '20070800001'; update PurchaseMaster set vendor = (select vendor from PurchaseMaster where Purchase_No = '20070800002') , warehouse = (select warehouse from PurchaseMaster where Purchase_No = '20070800002') where Purchase_No = '20070800001'; update PurchaseMaster set vendor = @vendor_id , warehouse = @warehouse where Purchase_No = '20070800002'; </textarea>
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-08-09 15:42:16, 註解 補充表頭資料互換‧
|
VICSYS
初階會員 發表:21 回覆:64 積分:32 註冊:2002-10-10 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |