-1

我的查询:

  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 ---> accessionmany to 1

非常感谢您的指导。

我对上述示例的期望是:

AA895325, sum(paid_amt), sum(copayt_amt), etc..
4

3 回答 3

2

以下是一些可能性(这不是真正的答案,但评论太长了):

(1) 您在表格中有重复项。鉴于您看到重复,这将是最明显的地方。

(2)您的说法“我的问题是 SAME 加入的 SAME 付款被多次计算”不太正确。问题是额外的付款被计算在内。我认为付款上有付款日期,您希望加入级别的日期逻辑能够捕捉到它。但是这种逻辑仍然会允许所有付款。

(3) 您的分析不正确,即记录了多笔付款。查询是正确的,但由于某种原因没有达到您的预期。

如所写,查询不应增加付款,除非加入表中有重复的加入 ID。

于 2012-06-19T17:15:38.270 回答
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]
于 2012-06-19T17:23:19.177 回答
1

将 accession_id 从 select 和 group by 中取出。它是通过加入求和,因为你告诉它。

说看到您按 XIFIN_LOAD_DATE 的月份和年份部分分组,我也希望它们出现在选择列表中。

现在读了上面的评论,我开始彻底糊涂了。

如果您是按加入求和,并且是一对多,那么多个加入不是重复的。这是你说的你想要的。

如果要按加入日期的年/月求和,则删除 accession-id 应使其根据链接日期所在的年/月对所有加入进行求和。

它会帮助所有相关人员,您只需输入一些示例数据,然后列出您期望的查询结果。

于 2012-06-19T17:00:19.877 回答