查询语句:
SELECT
SUM (JE) AS JE,
RQ
FROM
dllsd
WHERE
rq BETWEEN '2014-04-08'
AND '2014-04-14'
AND QDDM = '4101'
GROUP BY
RQ
ORDER BY
RQ asc
结果:

问题:
由于4月11号没有数据,分组里列不出来
怎么才能把指定时间段的数据分组统计出来?
------解决思路----------------------
SELECT ISNULL(SUM(d.je),0) AS je,
t.rq
FROM (
SELECT DateAdd(day,number,'2014-04-08') rq
FROM master..spt_values
WHERE type = 'p'
AND number <= DateDiff(day,'2014-04-08','2014-04-14')
) t
LEFT JOIN dllsd d
ON t.rq = d.rq
WHERE d.qddm = '4101'
GROUP BY d.rq
ORDER BY d.rq ASC
------解决思路----------------------
--我这边把开始和结束时间提取出来作参数,你如果不需要可以直接代进去
DECLARE @StartDate DATETIME,@EndDate DATETIME
SET @StartDate='20140408'
SET @EndDate='20140414'
SELECT ISNULL(T2.JE,0)JE
,DATEADD(DAY,T1.number,@StartDate)RQ
FROM master..spt_values T1
LEFT JOIN (
SELECT SUM(JE)AS JE,RQ FROM dllsd
WHERE rq BETWEEN @StartDate AND @EndDate AND QDDM = '4101'
GROUP BY RQ
) T2 ON DATEADD(DAY,T1.number,@StartDate)=T2.RQ
WHERE T1.type='P'AND T1.number<DATEDIFF(DAY,@StartDate,@EndDate)+1