协助 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)