作者yes302 (TOMMY)
看板Database
标题[SQL ] 判断时间,如何判断0此项目
时间Wed Feb 12 11:08:24 2014
小弟有个很笨T-SQL的问题
以前做过...但怎麽想也想不起来
目前所拥有的SQL为
SELECT
Count(*) AS CNT
,DATEPART(WK, CreateTime) AS WK
,YEAR(CreateTime) AS Y
,Month(CreateTime) AS M
,DATEPART(DD, CreateTime) AS DD
,CASE
WHEN DATEPART(DW,CreateTime)-1 =0 THEN '(日)'
WHEN DATEPART(DW,CreateTime)-1 =1 THEN '(一)'
WHEN DATEPART(DW,CreateTime)-1 =2 THEN '(二)'
WHEN DATEPART(DW,CreateTime)-1 =3 THEN '(三)'
WHEN DATEPART(DW,CreateTime)-1 =4 THEN '(四)'
WHEN DATEPART(DW,CreateTime)-1 =5 THEN '(五)'
WHEN DATEPART(DW,CreateTime)-1 =6 THEN '(六)'
END
AS DW
,DATEPART(HH, CreateTime) AS HH
FROM
XTable
GROUP BY
YEAR(CreateTime)
,Month(CreateTime)
,DATEPART(WK, CreateTime)
,DATEPART(DD, CreateTime)
,DATEPART(DW,CreateTime)
,DATEPART(HH, CreateTime)
ORDER BY
--WK DESC
Y DESC
,M DESC
,DD DESC
,DW DESC
,HH DESC
而这样显示结果为
CNT WK Y M D DW HH
3 7 2014 2 12 (三) 10
5 7 2014 2 12 (三) 9
3 7 2014 2 12 (三) 8
2 7 2014 2 12 (三) 7
2 7 2014 2 12 (三) 6
2 7 2014 2 12 (三) 4
2 7 2014 2 12 (三) 3
4 7 2014 2 12 (三) 2
3 7 2014 2 12 (三) 1
1 7 2014 2 12 (三) 0
中间少了5点至六点资料...因此HH=5的地方,想要补CNT=0
请问条件判断或是栏位判断,我该如何做啊?
我印象中...好像需一个一个判断...用累加的方式,例如说
SUM(CASE WHEN DATEPART(HH,CATETIME) = 5 THEN 1) AS CNT
不知道各位大,是否有好想的想法...
麻烦各位大了...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.163.60.87
※ 编辑: yes302 来自: 118.163.60.87 (02/12 11:10)
1F:→ smlboby:union all 一笔5点击进去? 02/12 15:56
2F:→ yes302:这样就写死了...有活一点的方式吗? 02/12 18:10