sql - SQL:寻找舍入重复
问题描述
我有一张桌子,似乎有交易在被撤销之前四舍五入到最接近的美元
鉴于这样的事情:
AccountID Transaction
1 20.05
1 -20.00
1 17.00
2 32.35
3 40.78
3 -41.00
4 15.00
4 -15.00
5 10.03
5 10.00
我想看看有多少账户有这种价值模式,以及一个四舍五入的负数对应部分。因此,例如,我想从上表中提取 AccountID 1 和 3。
我对 AccountID 4 不感兴趣,因为它是一个精确(绝对值)匹配,或者 AccountID 5,它具有“四舍五入的重复”但不是否定的对应部分。
任何人都知道我可以如何在 SQL 中实现这一点?
解决方案
只需与四舍五入的值进行比较。
SELECT
T.*
FROM
Transactions AS T
WHERE
EXISTS (
SELECT
'inverted rounded operation detected'
FROM
Transactions AS N
WHERE
T.AccountID = N.AccountID AND
ROUND(T.[Transaction], 0) = -1 * ROUND(N.[Transaction], 0))
推荐阅读
- cpu-architecture - 嵌套分支和推测执行会发生什么?
- c# - “运算符是”如何在 C# 的底层工作?
- java - AlreadyBuiltException:此对象已被构建
- php - mysqli_connect(): (HY000/2002): 连接超时但 MySQL 客户端可以连接
- java - 如何将具有 70 个字段的 java 对象发送到具有相同字段数的对象的 pl sql 过程
- c# - 在没有任何 DI 容器的情况下,有没有一种在 ASP.NET MVC 应用程序中实现依赖注入的好方法?
- swift - 从 uiTableViewCell 更改选定单元格的检查状态
- api - 如何使用 Instagram 的内容发布 API 而不是 Instagram 合作伙伴?
- c# - 如何查询2个深度?
- reactjs - Office UI Fabric React - 关注表单输入时显示工具提示?