您好我有一个查询似乎是两次“未设置”:
现在经过几次检查后,我知道这是因为当前阶段列中有NULLS和字符串'Not Set'存储在表中。所以下面会产生3个字符串'Not set'和195 NULLS强制为'Not Set'。 但我真正想看到的是#TempCircCount中的198 x'Not Sets'。怎么可以这样做?
我的失败代码在这里:
IF OBJECT_ID('tempdb..#TempCircCount') is not null
DROP TABLE #TempCircCount
SELECT
ISNULL(cirRep.CurrentStage, 'Not Set') AS CurrentStage,
COUNT(ISNULL(cirRep.CurrentStage, 'Not Set')) AS Circuits
INTO #TempCircCount
FROM
[QuoteBase].[dbo].[CircuitReports] cirRep
RIGHT JOIN
Quotebase.dbo.Circuits cir ON cir.[PW Number] = CirRep.[PWNumber]
WHERE
Cir.Status='New Circuit Order'
GROUP BY CurrentStage
ORDER BY CurrentStage
SELECT
ISNULL(CurrentStage, 'Not Set') AS [CurrentStage],
Circuits AS Circuits
FROM #TempCircCount
GROUP BY CurrentStage, Circuits
ORDER BY CurrentStage
答案 0 :(得分:3)
我相信只是改变
GROUP BY CurrentStage
到
GROUP BY ISNULL(cirRep.CurrentStage, 'Not Set')
会起作用。
GROUP BY
使用您的某个表字段(即CurrentStage
)中的cirRep.CurrentStage
而不是select中的字段。 SQL服务器不允许按选择中的字段进行分组。
出于这个原因,我还建议不使用与现有字段相同的输出字段名称。