返回选定的状态表,然后从另一个表中加入这些状态的计数。SQL

返回选定的状态表,然后从另一个表中加入这些状态的计数。SQL,sql,sql-server,select,join,Sql,Sql Server,Select,Join,我从状态表中选择了所有状态,然后想添加一个包含这些状态计数的新列。如果未找到任何内容,则默认为零 SELECT AQA.StatusId, AQA.[Description], NULL(Count(AQ.ActiveStatus)) AS Count FROM AP_QuoteActiveStatus AS AQA WITH(NOLOCK) LEFT OUTER JOIN AP_Quote AS AQ WITH(NOLOCK) ON AQ.ActiveS

我从状态表中选择了所有状态,然后想添加一个包含这些状态计数的新列。如果未找到任何内容,则默认为零

SELECT
    AQA.StatusId,
    AQA.[Description],
    NULL(Count(AQ.ActiveStatus)) AS Count
FROM
    AP_QuoteActiveStatus AS AQA WITH(NOLOCK)
    LEFT OUTER JOIN AP_Quote AS AQ WITH(NOLOCK) ON AQ.ActiveStatus = AQA.StatusId
ORDER BY AQA.[Description]
我得到的错误解读为:

Msg 102,15级,状态1,第4行“Count”附近语法不正确。味精 319,15级,状态1,第6行关键字附近语法不正确 “有”。如果此语句是公共表表达式,则 xmlnamespaces子句或更改跟踪上下文子句 语句必须以分号结尾。Msg 319,第15级, 状态1,第7行关键字“with”附近的语法不正确。如果这 语句是公共表表达式、xmlnamespaces子句或 change tracking context子句中,前一条语句必须为 以分号结尾


谢谢,这很有效。是分组依据删除了外部联接的重复项吗?是的,
groupby
在本例中就是这样做的。谢谢,因为默认的计数返回值是0,所以我不需要空值(count(AQ.ActiveStatus),“0”)?抱歉,我不明白您在尝试做什么。在TSQL中,没有
NULL
函数-我相信您正在寻找
ISNULL
COALESCE
。你当然可以在你的查询中包括这一点-我为你更新了我的答案。是的,这就是我试图做的。
SELECT
    AQA.StatusId,
    AQA.[Description],
    Count(ISNULL(AQ.ActiveStatus, '0')) AS [Count]
FROM
    AP_QuoteActiveStatus AS AQA WITH(NOLOCK)
LEFT OUTER JOIN AP_Quote AS AQ WITH(NOLOCK)
    ON AQ.ActiveStatus = AQA.StatusId
GROUP BY AQA.StatusId, AQA.[Description]
ORDER BY AQA.[Description]