Sql server 连接两个表中的数据
在我的项目中,公司的客户打电话询问他们的设备。每次打电话时,它都会保存在数据库中。现在我需要知道公司在一年中每月接到多少个电话,所以我写了这个请求:Sql server 连接两个表中的数据,sql-server,left-join,Sql Server,Left Join,在我的项目中,公司的客户打电话询问他们的设备。每次打电话时,它都会保存在数据库中。现在我需要知道公司在一年中每月接到多少个电话,所以我写了这个请求: SELECT COUNT(EveLngId) FROM T_Evenement where EveLngDosId = 1062 And EveLngBibId = 268 And EveTinSite = 1 And EveLngEleId <> 17432 And (EveTinParEmail is null OR EveTinP
SELECT COUNT(EveLngId) FROM T_Evenement
where EveLngDosId = 1062
And EveLngBibId = 268
And EveTinSite = 1
And EveLngEleId <> 17432
And (EveTinParEmail is null OR EveTinParEmail = 0)
And (EveLngTicketTransfertId IS NULL OR EveLngTicketTransfertId = 0)
And (EveTinIncidentAnnulation is null or EveTinIncidentAnnulation=0)
And YEAR(EveDatRedaction) = 2013
group by MONTH(EveDatRedaction)
请求可以工作,但问题是当一个月的值为null时,我不显示null或0,但它会跳过它。为此,我创建了一个日历表,如下所示:
所以现在我需要把这两个表连接起来,得到每个月的值,但我可以知道如何做到这一点。有什么建议或解决方案吗?试试这个-
;WITH ResultsCTE AS
(
SELECT MONTH(EveDatRedaction) AS ResultMonth,
COUNT(EveLngId) AS ResultCount
FROM T_Evenement
where EveLngDosId = 1062
And EveLngBibId = 268
And EveTinSite = 1
And EveLngEleId <> 17432
And (EveTinParEmail is null OR EveTinParEmail = 0)
And (EveLngTicketTransfertId IS NULL OR EveLngTicketTransfertId = 0)
And (EveTinIncidentAnnulation is null or EveTinIncidentAnnulation=0)
And YEAR(EveDatRedaction) = 2013
GROUP BY MONTH(EveDatRedaction)
)
SELECT CalendarStrLibelle,ISNULL(ResultCount,0) AS ResultCount
FROM Calendar
LEFT JOIN ResultsCTE
ON ResultMonth = CalendarLngId
SELECT CalendarStrLibelle
, ResultCount = ISNULL(cnt, 0)
FROM dbo.Calendar c
LEFT JOIN (
SELECT
[month] = MONTH(EveDatRedaction)
, cnt = COUNT(EveLngId)
FROM dbo.T_Evenement
WHERE EveLngDosId = 1062
AND EveLngBibId = 268
AND EveTinSite = 1
AND EveLngEleId <> 17432
AND ISNULL(EveTinParEmail, 0) = 0
AND ISNULL(EveLngTicketTransfertId, 0) = 0
AND ISNULL(EveTinIncidentAnnulation, 0) = 0
AND YEAR(EveDatRedaction) = 2013
GROUP BY MONTH(EveDatRedaction)
) t ON t.[month] = c.CalendarLngId
那么你想把你的日历表加入到你的日历表中吗?“你能给我们一些来自T_Evenment的示例数据吗?”jyparask回答了我的问题,谢谢你的提问,我想下次再举更多的示例