Sql 左外部联接不返回空值

Sql 左外部联接不返回空值,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个非常简单的示例查询,我正在尝试完成 我的结果如下: 我期望的结果是: month | count ---------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 4 10 | 9 11 | 0 12 | 0 您需要将月份表用作主要月份表: SELECT m.month_id, C

我有一个非常简单的示例查询,我正在尝试完成

我的结果如下:

我期望的结果是:

month  | count
----------------
    1  | 0
    2  | 0
    3  | 0
    4  | 0
    5  | 0
    6  | 0
    7  | 0
    8  | 0
    9  | 4
    10 | 9
    11 | 0
    12 | 0

您需要将月份表用作主要月份表:

SELECT
    m.month_id,
    COALESCE(COUNT(s.report_date),0)
FROM ref_months m 
LEFT JOIN stat_summary s 
    ON MONTH(s.report_date) = m.month_id
GROUP BY m.month_id;

您需要将月份表用作主要月份表:

SELECT
    m.month_id,
    COALESCE(COUNT(s.report_date),0)
FROM ref_months m 
LEFT JOIN stat_summary s 
    ON MONTH(s.report_date) = m.month_id
GROUP BY m.month_id;

您需要将月份表用作主要月份表:

SELECT
    m.month_id,
    COALESCE(COUNT(s.report_date),0)
FROM ref_months m 
LEFT JOIN stat_summary s 
    ON MONTH(s.report_date) = m.month_id
GROUP BY m.month_id;

您需要将月份表用作主要月份表:

SELECT
    m.month_id,
    COALESCE(COUNT(s.report_date),0)
FROM ref_months m 
LEFT JOIN stat_summary s 
    ON MONTH(s.report_date) = m.month_id
GROUP BY m.month_id;

您可以更改
左联接
表顺序,并且不需要
合并

SELECT
    m.month_id,
    [count] = COUNT(s.report_date)
FROM ref_months m 
LEFT JOIN stat_summary s 
    ON MONTH(s.report_date) = m.month_id
GROUP BY m.month_id;

您可以更改
左联接
表顺序,并且不需要
合并

SELECT
    m.month_id,
    [count] = COUNT(s.report_date)
FROM ref_months m 
LEFT JOIN stat_summary s 
    ON MONTH(s.report_date) = m.month_id
GROUP BY m.month_id;

您可以更改
左联接
表顺序,并且不需要
合并

SELECT
    m.month_id,
    [count] = COUNT(s.report_date)
FROM ref_months m 
LEFT JOIN stat_summary s 
    ON MONTH(s.report_date) = m.month_id
GROUP BY m.month_id;

您可以更改
左联接
表顺序,并且不需要
合并

SELECT
    m.month_id,
    [count] = COUNT(s.report_date)
FROM ref_months m 
LEFT JOIN stat_summary s 
    ON MONTH(s.report_date) = m.month_id
GROUP BY m.month_id;
你可以试试。如前所述,
months
应该是
left join
ed的表。此外,
count
应位于
adp
列或
stat\u summary
表中的
month(s.report\u date)

SELECT
m.month_id,
COALESCE(COUNT(adp),0)
FROM ref_months m LEFT OUTER JOIN stat_summary s 
on MONTH(s.report_date) = m.month_id
GROUP BY month(s.report_date),m.month_id
你可以试试。如前所述,
months
应该是
left join
ed的表。此外,
count
应位于
adp
列或
stat\u summary
表中的
month(s.report\u date)

SELECT
m.month_id,
COALESCE(COUNT(adp),0)
FROM ref_months m LEFT OUTER JOIN stat_summary s 
on MONTH(s.report_date) = m.month_id
GROUP BY month(s.report_date),m.month_id
你可以试试。如前所述,
months
应该是
left join
ed的表。此外,
count
应位于
adp
列或
stat\u summary
表中的
month(s.report\u date)

SELECT
m.month_id,
COALESCE(COUNT(adp),0)
FROM ref_months m LEFT OUTER JOIN stat_summary s 
on MONTH(s.report_date) = m.month_id
GROUP BY month(s.report_date),m.month_id
你可以试试。如前所述,
months
应该是
left join
ed的表。此外,
count
应位于
adp
列或
stat\u summary
表中的
month(s.report\u date)

SELECT
m.month_id,
COALESCE(COUNT(adp),0)
FROM ref_months m LEFT OUTER JOIN stat_summary s 
on MONTH(s.report_date) = m.month_id
GROUP BY month(s.report_date),m.month_id

如果月份不总是存在于ref_months表中,则可以使用Master db创建

Select m.Number as m_MonthID
COALESCE(COUNT(*),0) as count
from FROM Master.dbo.spt_Values m
left join stat_summary s 
ON MONTH(s.report_date) = m.Number
where m.name is null
and m.number between 1 and 12
GROUP BY m.Number

如果月份不总是存在于ref_months表中,则可以使用Master db创建

Select m.Number as m_MonthID
COALESCE(COUNT(*),0) as count
from FROM Master.dbo.spt_Values m
left join stat_summary s 
ON MONTH(s.report_date) = m.Number
where m.name is null
and m.number between 1 and 12
GROUP BY m.Number

如果月份不总是存在于ref_months表中,则可以使用Master db创建

Select m.Number as m_MonthID
COALESCE(COUNT(*),0) as count
from FROM Master.dbo.spt_Values m
left join stat_summary s 
ON MONTH(s.report_date) = m.Number
where m.name is null
and m.number between 1 and 12
GROUP BY m.Number

如果月份不总是存在于ref_months表中,则可以使用Master db创建

Select m.Number as m_MonthID
COALESCE(COUNT(*),0) as count
from FROM Master.dbo.spt_Values m
left join stat_summary s 
ON MONTH(s.report_date) = m.Number
where m.name is null
and m.number between 1 and 12
GROUP BY m.Number

然后,您必须在
s.report\u date
中提供所有月份,否则它们将不会显示。另一种方法是生成一个系列/范围以覆盖所有现有月份。然后必须在
s.report\u date
中提供所有月份,否则它们将不会显示。另一种方法是生成一个系列/范围以覆盖所有现有月份。然后必须在
s.report\u date
中提供所有月份,否则它们将不会显示。另一种方法是生成一个系列/范围以覆盖所有现有月份。然后必须在
s.report\u date
中提供所有月份,否则它们将不会显示。另一种方法是生成一个系列/范围以覆盖所有现有月份。@etm124您是否尝试过您已接受的答案?当然,我已修改了他的答案,使其与正确的
计数一起工作。@etm124您是否尝试过您已接受的答案?当然,我已修改了他的答案,使其与正确的
计数一起工作
count
@etm124您是否尝试过您已接受的答案?当然,我已修改了他的答案,使其与正确的
count
@etm124您是否尝试过您已接受的答案?当然,我已修改了他的答案,使其与正确的
count
配合使用。