我正在做體重報告,並且遇到問題。我使用此查詢來了解倉庫中的重量輸入情況,但是如果日期中沒有交易,則此日期不會顯示在結果中。SQL顯示沒有交易的日期,值= 0
SELECT erp.MKPF.BUDAT AS Data,
Sum(erp.MSEG.MENGE * erp.MARM.BRGEW) as pes
From erp.MKPF
INNER Join erp.MSEG on erp.MKPF.MANDT = erp.MSEG.MANDT and erp.MKPF.MBLNR = erp.MSEG.MBLNR
INNER Join erp.MARM on erp.MSEG.MANDT = erp.MARM.MANDT and erp.MSEG.MATNR = erp.MARM.MATNR And erp.MSEG.MEINS = erp.MARM.MEINH
INNER JOIN erp.MARA on erp.MSEG.MANDT = erp.MARA.MANDT and erp.MSEG.MATNR = erp.MARA.MATNR
WHERE erp.MKPF.MANDT = '100'
and erp.MKPF.BUDAT >= '20120720'
and erp.MKPF.BUDAT <= CONVERT(VARCHAR(8), GETDATE(), 112) -1
and erp.MSEG.LGORT in ('1001','1069')
and erp.MSEG.BWART In ('101','102','311','312')
and erp.MSEG.WERKS = '1001'
and erp.MARA.MTART in ('Z001','Z010','Z002','Z02E')
GROUP BY erp.MKPF.BUDAT*
現在的結果是這樣的:
Data PES
20120720 9999999.9999
20120721 9999999.8888
20120723 9999999.7777
,我需要這個
Data PES
20120720 9999999.9999
20120721 9999999.8888
20120722 0
20120723 999999.7777
有人可以幫助我嗎?
我所知,沒有簡單的方法來修改您的查詢來獲取你想要的數據集。數據如何最終呈現給用戶?這可能是一個更好/更容易的地方來添加顯示邏輯來填充0值的空日期。 – paul 2012-07-23 10:56:38
如果您構建輔助日期表並在budat上將其加入MKPF,您將獲得缺少日期。過濾條件應應用於日期表。 – 2012-07-23 10:59:48
忽略我刪除的答案 - 完全誤讀了問題。在這裏同意尼古拉,雖然這應該給你一些想法。 http://weblogs.sqlteam.com/jeffs/archive/2007/09/10/group-by-month-sql.aspx – raven 2012-07-23 11:10:37