3
我有在它PIVOT一個複雜的MS SQL 2005查詢...SQL樞軸MIN(COUNT(
我的數據是這樣的:
Data (clients left join visits):
ClientID VisitID ServiceID
1 34 5
1 36 2
1 36 5
1 45 2
1 48 2
1 60 2
2 44 1
3 48 2
3 78 3
3 79 2
而我需要的是這樣的:
ID [1] [2] [3] [4] [5]
1 0 1 0 0 1
2 1 0 0 0 0
3 0 1 1 0 0
的SQL我使用的查詢是這樣的:
select * from
(select clients.ClientID, clients.serviceID FROM clients left join visits on visit.cliendid=clients.clientid) e
pivot (COUNT(serviceID) for serviceID in ([1],[2],...,[54])) p
但是這個SQL查詢不會做我想做的,而不是它這樣做:
ID [1] [2] [3] [4] [5]
1 0 4 0 0 2
2 1 0 0 0 0
3 0 2 1 0 0
我需要所有的列中的數據是0或1,如,0從未使用這個服務,1已經使用這項服務... 我該怎麼做? (Math.MIN(COUNT(serviceID),0)for ...或者如果我能做到的話(CASE(COUNT(serviceID)> 0)THEN 1 ELSE 0 for。如果我可以做數據透視(Math.MIN(COUNT(serviceID),0) .. 但它不會讓我。
哈哈,謝謝,完美,如此簡單。 – 2009-09-24 20:34:29