我的疑问:
select
SUM(payments.paid_amt) as paid_amt,
SUM(payments.copay_amt) as copay_amt,
SUM(payments.CO_INSURANCE_AMT) as co_ins_amt,
SUM(payments.PATIENT_RESP_AMT) as patient_resp_amt,
accession.ACCESSION_ID
from
[F_PAYOR_PAYMENTS_monthly] payments
join F_ACCESSION_daily accession
on accession.ACCESSION_ID=payments.ACCESSION_ID
where accession.XIFIN_LOAD_DATE between '20111201' and '20111231'
group by accession.ACCESSION_ID
这是一份入藏数据样本:
以下是付款:
我的问题是SAME加入的SAME付款被多次计算
我的问题是如何确保特定加入的付款只汇总一次?
payments ---> accession
之间的关系为many to 1
非常感谢你的指导。
我对上述例子的期望是:
AA895325, sum(paid_amt), sum(copayt_amt), etc..
答案 0 :(得分:2)
以下是一些可能性(这不是一个真正的答案,但评论的时间太长了):
(1)表格中有重复项。鉴于你看到重复,这将是最明显的看法。
(2)您的陈述“我的问题是SAME加入的SAME付款被多次计算”并不完全正确。问题在于计算额外付款。我认为付款有一个付款日期,并且您期望加入级别的日期逻辑能够捕获它。但是这种逻辑仍然会让所有付款。
(3)您的分析中错误地记录了多笔付款。查询是正确的,但由于某种原因没有按预期执行。
如上所述,除非加入表中有重复的加入ID,否则查询不应增加付款。
答案 1 :(得分:2)
好的,如果我理解你的问题是正确的,那么你似乎没有考虑到一个非常简单的概念。当然,包含付款的表格每accesion_id
付款多次,即使表格的名称也提示(F_PAYOR_PAYMENTS_monthly
),您甚至在评论中说该表格已付款每月。所以,知道这一点,为什么每个accesion_id
得到多笔付款会让您感到惊讶,这似乎显而易见。由于您没有回答一些评论,询问您应该选择哪种付款,因此您可以过滤一个月或逐月过滤,只需这样:
select accession.ACCESSION_ID,
SUM(payments.paid_amt) as paid_amt,
SUM(payments.copay_amt) as copay_amt,
SUM(payments.CO_INSURANCE_AMT) as co_ins_amt,
SUM(payments.PATIENT_RESP_AMT) as patient_resp_amt
from [F_PAYOR_PAYMENTS_monthly] payments
join F_ACCESSION_daily accession
on accession.ACCESSION_ID=payments.ACCESSION_ID
where accession.XIFIN_LOAD_DATE between '20111201' and '20111231'
AND payment.[Month] = '201112'
group by accession.ACCESSION_ID, payments.[Month]
答案 2 :(得分:1)
将selection_id从select和group by中取出。它是由加入来总结的,因为你告诉它。
如果您按照XIFIN_LOAD_DATE的月份和年份部分进行分组,我也会在选择列表中看到它们。
现在已经阅读了上述评论,我开始被彻底混淆了。
如果您按照加入进行求和,并且它是一对多,那么不止一个加入不是重复的。这就是你说的你想要的。
如果您想要按年份/月份加入日期加总,那么删除加入ID应该根据链接日期所在的年/月将所有加入加起来。
它会帮助所有人关注它你只是为输入做了一些示例数据,然后列出了你对查询的期望结果。