2017-06-06 81 views
0

我想寫一個SQL Server查詢與1行作爲客戶的多個區域的日期戳記。它爲每個case語句返回一行。SQL Server查詢返回1行的今天日期對多個列計數

Customer Region 
1   A 
2   A 
3   B 
4   B 
5   B 

SELECT 
CONVERT(VARCHAR(10), GETDATE(), 111), 
case when Region = 'A' then COUNT(Customer) end as 'Region A', 
case when Region = 'B' then COUNT(Customer) end as 'Region B', 
FROM tbl_Customers 

結果:

Date  Region A Region B 
2017/06/07 2   NULL 
2017/06/07 NULL  3 
+0

您需要提供更多的細節,如數據佈局。瞭解您正在向以前從未見過您的代碼或數據的人解釋您的問題。你需要給我們更多的信息,以便我們弄清楚發生了什麼。 – AgapwIesu

回答

1

你只需要添加的聚合函數內CASE表達:

SELECT CONVERT(VARCHAR(10), GETDATE(),111) [Date], 
     COUNT(CASE WHEN Region = 'A' THEN Customer END) [Region A], 
     COUNT(CASE WHEN Region = 'B' THEN Customer END) [Region B] 
FROM tbl_Customers; 
+0

工作過一次,謝謝,將回答這是正確的。很高興看到社區接觸那些需要額外一點幫助的人 – Dave