看板 Database 關於我們 聯絡資訊
小弟有個很笨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)
smlboby:union all 一筆5點擊進去? 02/12 15:56
yes302:這樣就寫死了...有活一點的方式嗎? 02/12 18:10