即使这是旧的,有几个downvotes,最近我解决我的问题。我必须生成一个包含日期的表格。
SELECT SUM(CONVERT(int, case(vtl.oeil) WHEN RTRIM('I') THEN 2 ELSE 1 END)) as nb,
CONVERT(date, c.Date_commande) as Date_commande,
RTRIM(f.Code_fournis) AS Code_fournis
FROM Commande c
LEFT JOIN Fournisseur f
ON c.Code_fournis = f.Code_fournis
WHERE c.Code_fournis = 'XNZ'
AND Convert(date, c.Date_commande)
BETWEEN '2015-11-30'
AND '2015-12-04'
GROUP BY CONVERT(date, c.Date_commande), f.Code_fournis
UNION ALL
SELECT '0', date, 'XNZ'
FROM allDates
WHERE date
BETWEEN '2015-11-30'
AND '2015-12-04'
AND date NOT IN (
SELECT convert(date, c.Date_commande) as date
FROM allDates ad
INNER JOIN Commande c
ON ad.date = convert(date, c.Date_commande)
WHERE c.Code_fournis = 'XNZ'
and convert(date, c.Date_commande)
BETWEEN '2015-11-30'
AND '2015-12-04'
)
ORDER BY c.date_commande asc
这与我所要求的有点不同,但希望它可以帮助某人。