【发布时间】:2009-08-15 14:01:19
【问题描述】:
我的 SQL 很糟糕。我不知道我想做的事情是否可行。但是,由于我们的数据结构,我需要以这种方式解决这个问题,或者进行大规模的架构更改。
我正在尝试计算一个国家/地区的“省”(又名州)的数量。但是,只有少数几个省需要从计数中忽略。因此,我正在尝试检索一个国家列表,其中包含每个国家/地区的省份。
例如,我需要查询美国,并忽略“华盛顿特区”从计数。原因是因为按照我们的要求,华盛顿特区不是一个州。这是我目前正在尝试的(它不起作用):
SELECT
c.Name AS 'CountryName',
ISNULL(COUNT(p.[ID]), 0) as 'ProvinceCount'
FROM
Country c LEFT OUTER JOIN [Province] p ON p.[CountryID]=c.[ID]
WHERE
c.[ID]=@idParameter and
p.[Name] <> 'Washington D.C.'
可以想象,当 idParameter 与美国匹配时,此查询不会返回任何结果。
在计算异常时如何获得正确的计数?非常感谢您的帮助。
【问题讨论】: