我有一個查詢:總計爲列和總計 - 子查詢(SQL) - 分別來自不同的數據集
Select *
from
(Select SOH.SHIDAT_0 as 'OrdDate', SUM(SOH.ORDNOTL_0) as '1'
from x3v6.CICPROD.SORDER SOH
group by SOH.SHIDAT_0) as a,
(Select SDH.SHIDAT_0 as 'ShpDate', SUM(SDH.DLVNOTL_0) as '2'
from x3v6.CICPROD.SDELIVERY SDH
group by SDH.SHIDAT_0) as b,
(Select SIH.ACCDAT_0 as 'InvDate' , SUM(SIH.AMTNOTL_0) as '3'
from x3v6.CICPROD.SINVOICE SIH
where SIH.INVTYP_0 <> 2
group by SIH.ACCDAT_0) as c,
(Select SIH.ACCDAT_0 as 'CrdDate' , SUM(SIH.AMTNOTL_0) as '4'
from x3v6.CICPROD.SINVOICE SIH
where SIH.INVTYP_0 = 2
group by SIH.ACCDAT_0) as d
where
(a.OrdDate = b.ShpDate)
and (b.ShpDate = c.InvDate)
and (c.InvDate = d.CrdDate)
and YEAR(a.OrdDate) = YEAR(GETDATE())
and MONTH(a.OrdDate) = MONTH(GETDATE())
Order by
c.InvDate Desc
哪個返回如下:
OrdDate 1 ShpDate 2 InvDate 3 CrdDate 4
2016-11-11 00:00:00.000 186328.6800000000000 2016-11-11 00:00:00.000 144291.1400000000000 2016-11-11 00:00:00.000 131678.8600000000000 2016-11-11 00:00:00.000 1183.6800000000000
2016-11-10 00:00:00.000 266529.9400000000000 2016-11-10 00:00:00.000 292367.0000000000000 2016-11-10 00:00:00.000 315688.8000000000000 2016-11-10 00:00:00.000 5208.0000000000000
2016-11-08 00:00:00.000 239121.1300000000000 2016-11-08 00:00:00.000 190611.9200000000000 2016-11-08 00:00:00.000 195483.6400000000000 2016-11-08 00:00:00.000 864.0000000000000
2016-11-04 00:00:00.000 124571.9000000000000 2016-11-04 00:00:00.000 92638.4000000000000 2016-11-04 00:00:00.000 117241.6600000000000 2016-11-04 00:00:00.000 1752.0000000000000
2016-11-03 00:00:00.000 234202.8600000000000 2016-11-03 00:00:00.000 263060.3700000000000 2016-11-03 00:00:00.000 239889.8200000000000 2016-11-03 00:00:00.000 5208.0000000000000
2016-11-02 00:00:00.000 194374.4000000000000 2016-11-02 00:00:00.000 233850.7600000000000 2016-11-02 00:00:00.000 305662.3000000000000 2016-11-02 00:00:00.000 42251.7900000000000
我的問題是有些訂單合計有一個訂單日期,其中ShpDate和InvDate將爲空(尚未發貨的未清訂單)。我將如何構造這個查詢,以便顯示未結訂單以及那些已發貨和開具發票的訂單。
對不起,如果我的格式不好(我仍然習慣張貼在這個板上)。因此,像:
OrdDate 1 ShpDate 2 InvDate 3 CrdDate 4
2016-11-14 00:00:00.000 200000.0000000000000 null null null null null null
2016-11-11 00:00:00.000 186328.6800000000000 2016-11-11 00:00:00.000 144291.1400000000000 2016-11-11 00:00:00.000 131678.8600000000000 2016-11-11 00:00:00.000 1183.6800000000000
2016-11-10 00:00:00.000 266529.9400000000000 2016-11-10 00:00:00.000 292367.0000000000000 2016-11-10 00:00:00.000 315688.8000000000000 2016-11-10 00:00:00.000 5208.0000000000000
2016-11-08 00:00:00.000 239121.1300000000000 2016-11-08 00:00:00.000 190611.9200000000000 2016-11-08 00:00:00.000 195483.6400000000000 2016-11-08 00:00:00.000 864.0000000000000
2016-11-04 00:00:00.000 124571.9000000000000 2016-11-04 00:00:00.000 92638.4000000000000 2016-11-04 00:00:00.000 117241.6600000000000 2016-11-04 00:00:00.000 1752.0000000000000
2016-11-03 00:00:00.000 234202.8600000000000 2016-11-03 00:00:00.000 263060.3700000000000 2016-11-03 00:00:00.000 239889.8200000000000 2016-11-03 00:00:00.000 5208.0000000000000
2016-11-02 00:00:00.000 194374.4000000000000 2016-11-02 00:00:00.000 233850.7600000000000 2016-11-02 00:00:00.000 305662.3000000000000 2016-11-02 00:00:00.000 42251.7900000000000
什麼是你的數據庫? – Blag
SQL-SRV 2012。對不起 –