У меня есть сложный MS SQL 2005 запрос с PIVOT в нем ...SQL Pivot 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) для ... или если бы я мог сделать (CASE (COUNT (serviceID)> 0) THEN 1 ELSE 0 для. .. , но это не позволит мне.
haha, thanks, perfect, so simple. –