我有3张桌子:
ClosedClaims - 此表包含许多字段,最重要的是Spare(触摸声明的第一个人的ID),SpareFinished(他们打开它的日期)和Claim_ID(声明的ID)。
tblAuditing - 此表保存触摸声明的人员的审计跟踪,并且仅包含三个字段;备用(触摸它的人的ID),SpareFinished(他们触摸它的日期)和Claim_ID(触摸声明的ID)。
PROC_LIST - 此表包含用户ID列表,管理员级别及其全名。
我正在尝试创建一个查询,它会告诉我每个人的名字,以及他们触及的声明数量。如果他们多次触及索赔,我只希望将索赔ID计算一次。我有这个SQL字符串:
Select PROC_NM as 'Agent Name', AdminLevel as Role, Count(Claim_ID) as 'Count of Claims Reviewed', Spare as AgentID
from (SELECT DISTINCT Spare, SpareFinished, CLAIM_ID FROM ClosedClaims_MERGE
UNION SELECT DISTINCT Spare, SpareFinished, CLAIM_ID FROM tblAuditing) CCM
LEFT JOIN PROC_LIST PL ON CCM.Spare = PL.LOGIN
WHERE CCM.SpareFinished >= '1/1/2013' AND CCM.SpareFinished <= '11/18/2013'
GROUP BY Spare, PROC_NM, AdminLevel
ORDER BY Count(Claim_ID) DESC
显然,因为我在FROM子句(SpareFinished)中有日期字段,所以它会对同一个声明进行多次触摸。我无法弄清楚如何执行此操作,因为我需要在SQL中保留SpareFinished,因为用户将从表单中选择日期范围(因此我的“WHERE”子句)。
我的数据看起来像这样:
+++ ClosedClaims +++
Claim_ID Spare SpareFinished
123456 CC235 1/1/2013
123457 CC201 6/1/2013
+++ tblAuditing +++
Claim_ID Spare SpareFinished
123456 CC212 4/1/2013
123456 CC201 2/1/2013
123456 CC212 3/1/2013
123456 CC203 2/10/2013
123456 CC201 1/1/2013
123457 CC201 1/7/2013
123457 CC212 3/1/2013
+++ PROC_LIST +++
AdminLevel LOGIN PROC_NM
Senior CC235 Jim Thomas
Senior CC201 Sue Schmidt
Junior CC212 Julie Lawrence
Junior CC203 Bob Hurley
在这种情况下,我的输出应该类似于:
Agent Name Role Count Of Claims Reviewed AgentID
Jim Thomas Senior 1 CC235
Sue Schmidt Senior 2 CC201
Julie Lawrence Junior 2 CC212
Bob Hurley Junior 1 CC203
感谢任何帮助。
答案 0 :(得分:1)
如果我正确理解了问题,我相信Count(不同的Claim_ID)应该有效。