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
配合使用。