0
我有幾個表看起來像這樣選擇計數
Table1
Name varchar
ID int
Table2
ID int
Run_Date datetime
我想在一列中選擇名稱,然後日期的計數變成2列。 1列將是上週每個姓名的所有日期,第二列將是本週的每個姓名的所有計數。結果看起來像這樣的事情
所以,如果我的表看起來像這樣
Table1
Name1 1
Name2 2
Name3 3
Table2
1 2016-11-21 8:40:23.570
2 2016-11-21 8:50:23.570
1 2016-11-21 9:40:23.570
1 2016-11-21 10:40:23.570
1 2016-11-16 10:40:23.570
2 2016-11-16 10:40:23.570
3 2016-11-21 8:40:23.570
我的結果會看起來像
Name This_Week Last_week
Name1 3 1
Name2 1 1
Name3 1 0
我可以分別獲得價值做
WHERE DATEPART(wk, Run_Date) = DATEPART(wk, GETDATE()) AND DATEPART(yy, Run_Date) = DATEPART(yy, GETDATE())
我只是在一週後添加-1來獲取上週的所有內容。我怎樣才能讓這些在同一張桌子上並排顯示?
我試圖做一個CASE
COUNT(CASE WHEN DATEPART(wk, Run_DATE) = DATEPART(wk, GETDATE()) AND DATEPART(yy, Run_Date) = DATEPART(yy, GETDATE()) THEN 1 ELSE 0 END) AS This_Week
但它看起來像它只是計算的所有名稱在數據庫中的所有日期。
感嘆。我應該看到這一點。感謝馬特 – maltman
沒問題,我很確定,很容易忽略自己做了幾次。另一種解決方法是將其更改爲SUM(...),然後按照原樣保留case語句。計數是很好的,但例如,如果你想計算DISTINCT ID,日期等,因爲與SUM不能完成 – Matt