我有两个查询来测试我的输出
SELECT DISTINCT( providerId ),
SUM(( claimCount )),
SUM(paidAmount),
SUM(provallowed),
SUM(patresp),
provId,
cliCode,
asctype,
payerid,
procCode
FROM TempCounts tt,
TempClient tct
WHERE ( tct.npi = tt.provid
OR tct.txcode = tt.provid )
AND CLICODE = 'XXX'
GROUP BY tt.provid,
providerId,
cliCode,
asctype,
payerid,
procCode
-
SELECT DISTINCT( providerid ),
claimCount,
paidamount,
provallowed,
patresp,
provid,
CLICODE,
asctype,
payerid,
proccode
FROM TempCounts tt,
TempClient tct
WHERE ( tct.npi = tt.provid
OR tct.txcode = tt.provid )
AND CLICODE = 'XXX'
总结第二个查询的未聚合结果应该在第一个查询中给出聚合值,但我的数据集最终会像 第一个数据集
15086 7 216.16 0.00 35.00 1609950203 XXX 216 72040
15086 7 227.36 0.00 21.00 1609950203 XXX 216 72070
第二个数据集
15086 1 30.88 0.00 5.00 1609950203 XXX 216 72040
15086 1 32.48 0.00 3.00 1609950203 XXX 216 72070
不能为我的生活看到我所缺少的东西,并且盯着它看这么长时间我的代码是盲目的。有什么建议吗?
答案 0 :(得分:3)
由于DISTINCT选项,两个数据集可能不同。
因此,unaggregated查询只返回有限数量的行,这些行彼此不同。
在第一个查询中,DISTINCT选项没用,因为结果中包含所有分组列。
答案 1 :(得分:0)
我终于明白了。因为tempClient表有多个基于npi和txcode字段的记录(即每个npi的记录可以有多个txcode实例。我以为我正在过滤,因为针对mysql的相同查询给出了正确的结果。解决方案是添加tt .npi和tt.txcode到groupby语句。