小组,我将尝试尽力解释这一点,我希望它能使(某些)有意义.我从我创建的视图中提取数据,该视图告诉我"赞助商"的客户类型以及客户类型中有多少帐户在1年,2年和3年后处于非活动状态.例如:
SponsorID | CustomerType | ExpiredAfter | Total
1234 D 1 Year 5
1234 RA 1 Year 7
1234 CA 1 Year 3
1234 D 2 Years 2
1234 RA 2 Years 4
1234 CA 2 Years 1
1234 D 3 Years 8
1234 RA 3 Years 1
1234 CA 3 Years 6
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是SponsorID可能没有任何已过期1年的RA,因此数据中没有任何内容.所以不要得到:
SponsorID | CustomerType | ExpiredAfter | Total
1235 D 1 Year 5
1235 RA 1 Year 0
1235 CA 1 Year 3
Run Code Online (Sandbox Code Playgroud)
我明白了:
SponsorID | CustomerType | ExpiredAfter | Total
1235 D 1 Year 5
1235 CA 1 Year 3
Run Code Online (Sandbox Code Playgroud)
同样,不确定这是否有任何意义,但我想要做的是包括所有ExpiredAfter的所有客户类型,无论是否有值.如果没有值,我只想强制0或Null.出于报告目的,我需要将该数据行设为0.
有什么建议?
您可能还必须使用ISNULL(total,0)或COALESCE(total,0),具体取决于您使用的DBMS和查询(如womp所述)...因为如果计算TOTAL,则具有空值来自LEFT JOIN仍然会让你没有0值.