有新老兩套用友的資料庫 老的資料庫(已經不使用了,但是有3年的銷售資料未結轉到新的資料庫中)我通過聯查2個視圖的方式把資料篩選出來然后將結果寫入了自己創建的一張表,新的資料庫因為資料是在不斷變動的(有可能查詢出來的銷售資料處于未執行完的狀態,后續會繼續執行),也就是說我通過時間條件聯查視圖把結果寫入自己的表中,后續資料會有變化 需要把變化更新到自己的表中,請大神們指導一下如何將聯查的結果更新到資料表中
uj5u.com熱心網友回復:
使用Merge Into函式,如果存在就更新,不存在就插入uj5u.com熱心網友回復:
可參考文章https://www.cnblogs.com/lgx5/p/4813357.html
uj5u.com熱心網友回復:
MERGE INTO Report_temp.dbo.銷售資料源 as sUSING (SELECT dcreatesystime as 訂單日期,
csocode as 訂單號,
irowno as 訂單行號,
ccusabbname as 客戶名稱,
cpersonname as 業務員,
cdepname as 銷售部門,
cstname as 銷售型別,
cinvcode as 存貨編碼,
cinvstd as 銷售材質,
cfree1 as 寬度,
cfree2 as 厚度,
itaxunitprice as 含稅單價,
isum as 價稅合計,
iquantity as 訂貨數量,
ifhquantity as 發貨數量,
cdefine23 as 包裝方式,
cdefine24 as 鋅層,
cdefine25 as 表面處理,
cdefine29 as 用途
FROM SaleOrderQ left join SaleOrderSQ ON SaleOrderQ.id = SaleOrderSQ.id
WHERE dcreatesystime between '2019-9-1' and '2020-6-30') AS ss ON s.訂單日期 = ss.訂單日期 and s.訂單行號 = ss.訂單行號
WHEN MATCHED
THEN UPDATE SET s.訂單日期 = ss.訂單日期,
s.訂單號 = ss.訂單號,
s.訂單行號 = ss.訂單行號,
s.客戶名稱 = ss.客戶名稱,
s.業務員 = ss.業務員,
s.銷售部門 = ss.銷售部門,
s.銷售型別 = ss.銷售型別,
s.存貨編碼 = ss.存貨編碼,
s.銷售材質 = ss.銷售材質,
s.寬度 = ss.寬度,
s.厚度 = ss.厚度,
s.含稅單價 = ss.含稅單價,
s.價稅合計 = ss.價稅合計,
s.訂貨數量 = ss.訂貨數量,
s.發貨數量 = ss.發貨數量,
s.包裝方式 = ss.包裝方式,
s.鋅層 = ss.鋅層,
s.表面處理 = ss.表面處理,
s.用途 = ss.用途
WHEN NOT MATCHED
THEN INSERT VALUES( ss.訂單日期,
ss.訂單號,
ss.訂單行號,
ss.客戶名稱,
ss.業務員,
ss.銷售部門,
ss.銷售型別,
ss.存貨編碼,
ss.銷售材質,
ss.寬度,
ss.厚度,
ss.含稅單價,
ss.價稅合計,
ss.訂貨數量,
ss.發貨數量,
ss.包裝方式,
ss.鋅層,
ss.表面處理,
ss.用途)
OUTPUT $ACTION AS [ACTION],inserted.*,deleted.* into Report_temp.dbo.銷售資料同步日志;
這里 ouput into Report_temp資料庫的 銷售資料同步日志表 會提示無效 也不知道怎么寫 請問可以指點下么?
我想把操作記錄日志存到一張表上 作為日志
uj5u.com熱心網友回復:
報錯資訊是什么樣的?可以貼出來看看;銷售資料同步日志的表結構呢?你這里如果只有insert操作,那deleted.*就始終為空,但是.銷售資料同步日志的列要有兩套
https://blog.csdn.net/tjvictor/article/details/4344949
uj5u.com熱心網友回復:
就是 OUTPUT $ACTION AS [ACTION],inserted.*,deleted.* into Report_temp.dbo.銷售資料同步日志;report_temp.dbo.銷售資料同步日志 下面有紅線 提示無效
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/17910.html
標籤:疑難問題
上一篇:查詢結果顯示問題
