簡體   English   中英

在計數語句中顯示空值-SQL Server

[英]Show Null Values in Count Statement - SQL Server

我正在開發銷售報告,並嘗試選擇銷售人員在一周內完成的活動計數,並且想要顯示所有活動,無論他是否在表中完成了該活動或否。我使用的是左側聯接或完全聯接,但未顯示。 以下是表格的說明

Table 1: Activity Types - ACT_TYPE_ID ,ACT_TYPE_Desc 
Table 2: Activity Details - ACT_TYPE_ID, ACT_TYPE_Text 

我想顯示如下:

類型計數

Sales Call -             3 
Phone Call               0 
Meeting Outside          9 

以下是我的select語句,但未返回必需的內容,僅顯示創建的活動:

Select ACT_TYPE_Desc as [Activity Type] , Count(CR031_DIARY_TEXT) as Count 
From ACT_TYPES AT  Join ACT_Details AD 
On AT.DRY_TRC_TYPE = Ad.ACT_TYPE 
Group By ACT_TYPE_Desc

這個解決方案幾乎可以用,但是它沒有顯示未分配的活動。是否有任何方法可以包含這些活動,我已經使用了Left和full join

如果您需要更多信息,請告訴我。

感謝名單

您可以在下面嘗試

Select ACT_TYPE_Desc as [Activity Type] , Count(CR031_DIARY_TEXT) as Count 
From ACT_TYPES AT left Join ACT_Details AD 
On AT.DRY_TRC_TYPE = Ad.ACT_TYPE 
Group By ACT_TYPE_Desc 

使用左ACT_Details ,並對ACT_Details表中的一列進行計數,以將所有記錄包括在內,甚至包括NULL

SELECT
    AT.ACT_TYPE_Desc AS [Activity Type],
    COUNT(AD.ACT_TYPE) AS cnt
FROM ACT_TYPES AT
LEFT JOIN ACT_Details AD
    ON AT.DRY_TRC_TYPE = AD.ACT_TYPE AND <restriction on time>
GROUP BY
    AT.ACT_TYPE_Desc;

注意<restriction on time>

如果您需要在ACT_Details表上添加任何限制,則將它們放置在ACT_DetailsON子句中。 ACT_TYPES表的限制可能在WHERE子句中。

嘗試這樣:

Select COALESCE(ACT_TYPE_Desc, 'Empty') as [Activity Type] , 
COALESCE(Count(CR031_DIARY_TEXT), 0) as Count

From ACT_TYPES AT LEFT OUTER Join 

ACT_Details AD 
On AT.DRY_TRC_TYPE = Ad.ACT_TYPE 
Group By CR774_DRY_TRC_DESC 

如果值為null,則Coalesce函數將返回0。 注意:返回值(在這種情況下為“空”)取決於返回值。 它可以是字符串或日期,也可以是任何其他類型,具體取決於列的類型。

我認為最好的方法是使用左外部聯接,在左外部聯接中,如果左行沒有與右表對應的行,則右表的聯接中將存在左表,在右聯接表為null,這與內部聯接(您的聯接)不同。這是左聯接https://www.w3schools.com/sql/sql_join_left.asp的文檔,這是內部聯接https://的文檔www.w3schools.com/sql/sql_join_inner.asp

Select ACT_TYPE_Desc as [Activity Type] , Count(CR031_DIARY_TEXT) as Count 
From ACT_TYPES AT  LEFT Join ACT_Details AD 
On AT.DRY_TRC_TYPE = Ad.ACT_TYPE 
Group By ACT_TYPE_Desc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM