我需要查找过去五天内按日期分组的三种产品及其数量的列表。为此,我使用了下面的TSQL。非现有组项目类别的零计数
SELECT CONVERT(VARCHAR(10),WM_data,103) as Date,
Product = CASE
WHEN WM_Product = 1 THEN 'Product A'
WHEN WM_Product = 2 THEN 'Product B'
ELSE 'Product C'
END,
WM_qtd as Quantity
FROM Tb_InfoProduct
GROUP BY CONVERT(VARCHAR(10),WM_data,103), WM_Product
HAVING CONVERT(VARCHAR(10),WM_data,103) > convert(VARCHAR(10),dateadd(dd, -5, getdate()),103)
ORDER BY CONVERT(VARCHAR(10),WM_data,103), WM_Product
,结果我得到:
Date Product Quantity
-------------------------------------------------
16/02/2012 Product A 132
16/02/2012 Product C 10
17/02/2012 Product A 163
17/02/2012 Product B 61
17/02/2012 Product C 58
18/02/2012 Product A 7
18/02/2012 Product B 2
但我需要:
Date Product Quantity
-------------------------------------------------
16/02/2012 Product A 132
16/02/2012 Product B 0 -- This
16/02/2012 Product C 10
17/02/2012 Product A 163
17/02/2012 Product B 61
17/02/2012 Product C 58
18/02/2012 Product A 7
18/02/2012 Product B 2
18/02/2012 Product C 0 -- This
我怎样才能做到这一点?
你需要有(或产生)日期的列表,你再外连接上的日期值。 – 2012-02-26 02:58:20
另外,您应该在'WHERE'子句中进行过滤(使用日期对象而不是字符串) – Leigh 2012-02-26 04:42:26