J'ai un complexe MS SQL requête 2005 avec un PIVOT en elle ...SQL Pivot MIN (COUNT (
J'ai données comme ceci:
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
Et ce que j'ai besoin est ceci:
ID [1] [2] [3] [4] [5]
1 0 1 0 0 1
2 1 0 0 0 0
3 0 1 1 0 0
La requête SQL J'utilise est le suivant:
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
Mais cette requête SQL ne fait pas ce que je veux, à la place il le fait:
ID [1] [2] [3] [4] [5]
1 0 4 0 0 2
2 1 0 0 0 0
3 0 2 1 0 0
J'ai besoin de toutes les données dans les colonnes être 0 ou 1, comme, 0 n'a jamais utilisé ce service , 1 a utilisé ce service ... Comment est-ce que je fais?
Ce serait génial si je pouvais faire pivoter (Math.MIN (COUNT (serviceID), 0) pour ... ou si je pouvais le faire (CASE (COUNT (serviceID)> 0) THEN 1 ELSE 0 pour. .. mais il ne me laisse pas
haha, merci, parfait, si simple. –