为什么 temp table 中的行数未显示?

Why are rows in temp table not showing in count?

我有一个带有临时 table 的 T-SQL 查询,它是 运行 并显示每个 table 的行数但是对于其中一个临时 tables(有 124 行)SELECT COUNT 显示为零,而不是临时 table.

中的 124

我试过更改 select 语句中的连接并重新键入整个查询。我为所有字段添加了别名,并仔细检查了所有临时 table 是否给出了正确的结果。据我所知,我已经为所有 4 个临时 table 以相同的方式编写了 COUNT,但 COUNT(#ML.MembershipID) 是唯一显示为零且不匹配的行数。

--这是我查询的 select 部分

SELECT #Type.MembershipType,
COUNT(#MS.MembershipID) AS MembersStartCount,
COUNT(#ME.MembershipID) AS MembersEndCount,
COUNT(#ML.MembershipID) AS MembersLostCount,
COUNT(#MN.MembershipID) AS MembersGainedCount
FROM Filteredccx_Membership mem INNER JOIN #Type ON mem.ccx_membershipid=#Type.MembershipID
LEFT OUTER JOIN #MS ON mem.ccx_membershipid=#MS.MembershipID
LEFT OUTER JOIN #ME ON mem.ccx_membershipid=#ME.MembershipID
LEFT OUTER JOIN #MN ON mem.ccx_membershipid=#MN.MembershipID
LEFT OUTER JOIN #ML ON mem.ccx_membershipid=#ML.MembershipID
GROUP BY #type.MembershipType

COUNT(#ML.MembershipID) AS MembersLostCount,应该在 2 种会员类型中显示总共 124 个,但在两行中显示为 0。所有其他 COUNT 都显示临时 tables.

中的行数

您的 LEFT OUTER JOIN 可能没有从 #ML table 返回任何内容。 这意味着 #ML.MembershipID 对所有行都是 NULL。

尝试将其更改为:

COUNT(ISNULL(#ML.MembershipID, 0)) AS MembersLostCount,