【发布时间】:2015-01-16 00:28:05
【问题描述】:
我有一个表格,其中包含如下数据:
case_id person_id provider_group_ID PROVIDER_GROUP_FUNCTION case_date
12421 1111 SLS_D2 BPSC_Service 2014-10-07
12422 1111 SLS_D2 BPSC Service 2014-10-07
12423 1111 SLS_D2 BPSC Service 2014-10-07
我还有另一个名为 TeleComData 的表,例如:
PersonID provider_group_id provider_group_function case_date NUM_CALLS
1111 SLS_D2 BPSC_Service 2014-10-07 8
1111 BPSC BPSC_Service 2014-10-07 0
我想要的是
CaseCount PROVIDER_GROUP_ID PROVIDER_GROUP_FUNCTION case_date num_calls
3 SLS_D2 BPSC_Service 2014-10-07 8
0 BPSC BPSC_Service 2014-10-07 0
但截至目前,我得到以下信息
CaseCount PROVIDER_GROUP_ID PROVIDER_GROUP_FUNCTION case_date num_calls
3 SLS_D2 BPSC_Service 2014-10-07 8
3 BPSC BPSC_Service 2014-10-07 0
我在两个表之间进行了左外连接,而不是根据特定的 PROVIDER_GROUP_ID 计算案例,而是复制它。 我似乎无法弄清楚我的代码发生了什么。这是我目前得到的部分:
SELECT COUNT(DISTINCT CASE_ID) FROM
dbo.DW_TELECOM_DATA B
LEFT OUTER JOIN Clear.T_CLEAR_SERVICE A ON
A.Case_date = B.Case_date
AND A.PERSON_ID = B.PERSON_ID
【问题讨论】:
-
您可能只需要在 JOIN 中添加
AND A.provider_group_id = B.provider_group_id -
如果我这样做,我不会得到结果集中的第二行(casecount 为 0)
标签: sql-server tsql count distinct one-to-many