【发布时间】:2015-08-16 00:10:32
【问题描述】:
我有一个在 SUM(contar) 上为我提供空值的数据透视表,我想将它们更改为 0
SELECT Description AS Categoria,
[ACS],
[URO]
FROM
(SELECT GroupType.Description,
Speciality.Shortname,
SUM(1) AS contar
FROM DoctorEnterpriseDetails
INNER JOIN Speciality ON DoctorEnterpriseDetails.Speciality1 = Speciality.SpecialityId
INNER JOIN GroupType ON DoctorEnterpriseDetails.GroupId = GroupType.GroupId
WHERE (DoctorEnterpriseDetails.EnterpriseId = 48)
GROUP BY GroupType.Description,
Speciality.Shortname) AS ps PIVOT (SUM(contar)
FOR Shortname IN ([ACS],[URO])) pvt
ORDER BY description
我尝试过这种方式,但它再次给了我 Null 值
SELECT Description AS Categoria,
[ACS],
[URO]
FROM
(SELECT GroupType.Description,
Speciality.Shortname,
GroupType.GroupId,
(CASE WHEN (SUM(1) IS NULL) THEN 0 ELSE SUM(1) END) AS contar
FROM DoctorEnterpriseDetails
INNER JOIN Speciality ON DoctorEnterpriseDetails.Speciality1 = Speciality.SpecialityId
INNER JOIN GroupType ON DoctorEnterpriseDetails.GroupId = GroupType.GroupId
WHERE (DoctorEnterpriseDetails.EnterpriseId = 48)
GROUP BY GroupType.Description,
Speciality.Shortname,
DoctorEnterpriseDetails.GroupId,
GroupType.GroupId) AS ps PIVOT (SUM(contar)
FOR Shortname IN ([ACS],[URO])) pvt
ORDER BY GroupId;
我不明白出了什么问题。谢谢
【问题讨论】: