0

嗨,我有一个查询似乎两次“未设置”:

在此处输入图像描述

现在经过几次检查,我知道这是因为 currentstage 列有 NULLS 并且字符串“未设置”存储在表中。所以下面产生 3 个“未设置”字符串和 195 个 NULLS 强制为“未设置”。但我真正想看到的是我的#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 
4

1 回答 1

3

我相信只是改变

GROUP BY CurrentStage 

GROUP BY ISNULL(cirRep.CurrentStage, 'Not Set')

会工作。

使用来自您的表字段之一(即)而不是选择GROUP BY中的字段。SQL Server 不允许按选择中的字段进行分组。CurrentStagecirRep.CurrentStage

正是出于这个原因,我还建议不要为您的输出字段使用与现有字段相同的名称。

于 2013-07-18T12:41:14.457 回答