协助 LEFT JOIN。
Assistance with LEFT JOIN.
尝试在计数 = 0 时获取空值。下面是我用来计算符合特定条件的网站数量的代码。在这种情况下,代码以 11 或 21 开头。有一个类似构造的问题,但似乎我的性质更简单。
SELECT
[Area],
COUNT(*) AS [Number of Sites]
FROM
dbo.sizeclassreport
Where area='000005' and (code like '11%' or code like '21%')
GROUP BY
[area]
UNION ALL
因此,从响应来看,似乎我需要构建一个额外的 table(如另一个问题所述,计算 table)列出区域然后进行左连接。以下是我的第一次尝试。
Create TABLE areas
(
Area char(6), NOT NULL
CONSTRAINT PK_AREAS PRIMARY KEY (areas)
Select * from areas
LEFT JOIN dbo.sizeclassreport ON areas.areas = area.sizeclassreport
COUNT(*) AS [Number of Sites]
FROM
dbo.sizeclassreport
Where area='000005' and (code like '11%' or code like '21%')
GROUP BY
[area]
UNION ALL
如果没有数据,您将不会获得显示零的行。但是,您可以强制一行存在,然后如果数据存在,它将被显示,如果不存在,您可以通过 coalesce()
函数获得零。
SELECT
'000005' as area
, COALESCE((SELECT COUNT(*) FROM dbo.sizeclassreport
WHERE area = '000005' AND code LIKE '11%' OR code LIKE '21%'), 0)
尝试在计数 = 0 时获取空值。下面是我用来计算符合特定条件的网站数量的代码。在这种情况下,代码以 11 或 21 开头。有一个类似构造的问题,但似乎我的性质更简单。
SELECT
[Area],
COUNT(*) AS [Number of Sites]
FROM
dbo.sizeclassreport
Where area='000005' and (code like '11%' or code like '21%')
GROUP BY
[area]
UNION ALL
因此,从响应来看,似乎我需要构建一个额外的 table(如另一个问题所述,计算 table)列出区域然后进行左连接。以下是我的第一次尝试。
Create TABLE areas
(
Area char(6), NOT NULL
CONSTRAINT PK_AREAS PRIMARY KEY (areas)
Select * from areas
LEFT JOIN dbo.sizeclassreport ON areas.areas = area.sizeclassreport
COUNT(*) AS [Number of Sites]
FROM
dbo.sizeclassreport
Where area='000005' and (code like '11%' or code like '21%')
GROUP BY
[area]
UNION ALL
如果没有数据,您将不会获得显示零的行。但是,您可以强制一行存在,然后如果数据存在,它将被显示,如果不存在,您可以通过 coalesce()
函数获得零。
SELECT
'000005' as area
, COALESCE((SELECT COUNT(*) FROM dbo.sizeclassreport
WHERE area = '000005' AND code LIKE '11%' OR code LIKE '21%'), 0)