【问题标题】:Duplicates in Sum SQL Server 2014Sum SQL Server 2014 中的重复项
【发布时间】:2017-03-17 15:18:45
【问题描述】:

我的代码效果很好,只是它汇总了多个日期的存款金额,而不仅仅是相应的日期和帐户。例如:

帐号:123 / 日期:01/01/2012 / 存款要求:100 美元 / 存款:100 美元

帐号:123 / 日期:2012 年 1 月 20 日 / 存款要求:100 美元 / 存款:100 美元

查询结果:

帐号:123 / 日期:2012 年 1 月 1 日 / 所需存款:100 美元 / 存款:200 美元

帐号:123 / 日期:2012 年 1 月 20 日 / 存款要求:100 美元 / 存款:200 美元

这是同一个人帐户,但有两个不同的日期。存款金额应仅与帐户编号和日期对应的金额相加。感谢您的帮助!

SELECT ca.fdorgunit AS Facility
, pt.fdmedrecnum AS Account
, ca.fddos AS DOS
, Cast(iv.fdinnetdeposit/100.0 as decimal(10,2)) AS [Deposit Required]
, Sum(Case When pa.fddescription = 'Deposit' Then Cast(pa.fdpayadjamount/100.0 as decimal(10,2)) Else 0 END) AS Deposit
FROM OPENQUERY (VISION, 'SELECT * FROM de.tbinsverification') AS iv
LEFT JOIN OPENQUERY (VISION, 'SELECT * FROM ci.tbcase') AS ca
ON iv.fdcase = ca.id
JOIN OPENQUERY (VISION, 'SELECT * FROM de.tbpatient') AS pt
ON pt.id = ca.fdpatient
LEFT JOIN OPENQUERY (VISION, 'SELECT * FROM ar.tbpayadjmaster') AS pa
ON pa.fdpatient = pt.id
WHERE iv.fdinnetdeposit is not Null AND iv.fdinnetdeposit <> '0' AND ca.fdcasestatus = 'Performed'
GROUP BY ca.fdorgunit, ca.fddos, iv.fdinnetdeposit, pt.fdmedrecnum

下面是它在表格中的外观,但当前查询返回 2016 年 10 月 10 日和 2016 年 10 月 20 日日期的 200 美元押金:

Facility | Account |  DOS     | Deposit Required | Deposit
1        |   1234  | 10/10/16 |    $100          |  $100
1        |   1234  | 10/20/16 |    $100          |  $100

【问题讨论】:

  • 什么是:ca.fdoirunit ca.fddos iv.fdinnetdepositpt.fdmedrecnum?因为您是按这些字段分组的,而不仅仅是帐户和日期。

标签: sql sql-server group-by sum duplicates


【解决方案1】:

如果您想按月份和年份获得 Deposit RequiredDeposit 的总和,请在 GROUP BY 中试试这个。

GROUP BY ca.fdorgunit, MONTH(ca.fddos), YEAR(ca.fddos), iv.fdinnetdeposit, pt.fdmedrecnum

【讨论】:

  • 我希望它按原样分组,但当该人在多个日期进行存款时,存款金额不会翻倍。该查询仅识别存款,但不识别导致双倍金额的日期。
  • @Tosh 你的意思是其中一条记录不应该有存款金额值吗?
  • 不,同一个账户有两个不同的存款日期。该查询是对帐户的所有存款求和,并将每个日期的总和放在一起。我只需要特定日期的存款总额。查看我上面发布的查询结果。两个日期的存款金额应该只有 100 美元,但两个日期都返回 200 美元。
  • 你能发布应该计算的数据吗?表中的值?我无法用您给定的数据将其可视化。
  • @jelliase - 我在上面的原始帖子中添加了表格的外观。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多