iT邦幫忙

0

MS SQL語法 插入2個資料表

  • 分享至 

  • xImage

select
TG003 as 銷貨日
,rtrim(TG004) as 客代
,rtrim(MA002) as 客戶簡稱
,('') as 銷貨單 --用sql()去產生多銷貨單號
,(select TOP(1) rtrim(TG114) from COPTG
where TG023 <> 'V' and TG003 = '${銷貨日}' and TG004 = '${客代}' and rtrim(TG114) <> '' )
as 報關行
,sum(TG045+TG046) as 銷貨金額
,(select TOP(1) rtrim(UDF07) from COPTG
where TG023 <> 'V' and TG003 = '${銷貨日}' and TG004 = '${客代}' and rtrim(UDF07) <> '' )
as 報關費用
,(select TOP(1) rtrim(TG115) from COPTG
where TG023 <> 'V' and TG003 = '${銷貨日}' and TG004 = '${客代}' and rtrim(TG115) <> '' )
as 備註
,sum(TH037+TH038) as 實際報關費用

from COPTG G
inner join COPMA A on TG004 = MA001
where TG023 <> 'V' and TG003 = '${銷貨日}' and TG004 = '${客代}'
left join COPTH H on TG001 = TH001 and TG002 = TH002
where rtrim(TH004) like 'PS%'

group by TG001 , TG002, TG003 ,rtrim(TG004) ,rtrim(MA002)

featherm iT邦新手 5 級 ‧ 2022-05-24 10:36:50 檢舉
? 你想表達什麼
easypolo iT邦新手 5 級 ‧ 2022-05-28 11:25:10 檢舉
是原本的設計只有銷貨金額加總,但是新的任務是要把銷貨金額的加總 減去 報關費用(即銷貨單的品號"PS"開頭),所以後來我把TG001 TG002都拿掉,只留 left joins那一行看起來好可行。可是,目前好像有一個單子 有些銷貨單沒有列出來。
easypolo iT邦新手 5 級 ‧ 2022-05-30 00:32:43 檢舉
table COPTG只有 針對總銷貨金額,只有table COPTH才有銷貨明細,而銷貨明細內
品號(TH004)"PS"開頭,就是相要去除的"報關費用"。 所以是不是我只要加入粗體字left join之後的就可以找出實際報關費用,最後就可以用(sum(TG045+TG046) -sum(TH037+TH038) ) as 實際銷貨費用 帶出來呢?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2022-05-24 16:39:23

SQL 問題
請先至db fiddle建好資料表及內容資料
再來問會比較有效率

easypolo iT邦新手 5 級 ‧ 2022-05-28 11:27:30 檢舉

那我先要把有些資料做一下加工處理才行吧!

我要發表回答

立即登入回答