我有一个表会话,其中有一个约会类型列(nvarchar)。aptType 可以是三个值之一(小时、半小时、对)。
我需要的是客户名称、小时数、半小时数、对数。
所以数据可能看起来像这样
bob | Hour
bob | Hour
bob | halfhour
bob | halfhour
bob | halfhour
bob | Pair
我想要的是
bob | 2 | 3 | 1
我尝试了这个主题的变化
select c.firstname,
count(shour.clientid),
count(shalfhour.clientid),
count(sHour.clientid)
From Client as c
left outer join [session] as sHour on c.Entityid = shour.ClientId
left outer join [session] as sHalfHour on c.Entityid = sHalfHour.ClientId
left outer join [session] as sPair on c.Entityid = sPair.ClientId
where c.entityid =1 and (shour.appointmentType = 'Hour' or sHalfHour.appointmentType = 'HalfHour')
group by c.firstname
客户 1 的数据是他有 35 小时的 apttypes,其余时间为 0。
当我执行上述操作时,我得到
bob | 1135 | 1135 | 1135
如果我将 where 更改为 an 或返回 0 行。
反正有什么我想做的吗?