【发布时间】:2016-09-15 04:42:23
【问题描述】:
我有一个包含客户编号、日期、金额和交易类型(买入或卖出)的交易清单。我只想退回未被相同客户、日期和金额取消但交易类型相反的交易(按客户、按天、按金额)。
例如,我的示例表(事务)如下:
+------------+------------+--------+--------+ |客户 |日期 |金额 |行动 | +------------+------------+--------+--------+ | 1111 | 2016 年 9 月 15 日 | 5 |购买 | |第2222章2016 年 9 月 15 日 | 5 |出售 | |第3333章2016 年 9 月 15 日 | 6 |购买 | |第3333章2016 年 9 月 15 日 | 6 |出售 | | 4444 | 2016 年 9 月 15 日 | 7 |出售 | |第2222章2016 年 9 月 15 日 | 6 |购买 | +------------+------------+--------+--------+我只希望退回以下物品:
+------------+------------+--------+--------+ |客户 |日期 |金额 |行动 | +------------+------------+--------+--------+ | 1111 | 2016 年 9 月 15 日 | 5 |购买 | |第2222章2016 年 9 月 15 日 | 5 |出售 | | 4444 | 2016 年 9 月 15 日 | 7 |出售 | |第2222章2016 年 9 月 15 日 | 6 |购买 | +------------+------------+--------+--------+客户 3333 被排除在外,因为他们在同一天有相同价值的买入和卖出金额。客户 2222 已被留下,即使他们在同一天进行了买卖,但金额不同,所以我需要返回这两个记录。
【问题讨论】:
-
每个客户每天只有一次买卖?
-
是的。每个客户每个日期最多只能有 1 次买入和 1 次卖出。但是某些客户可能在该日期只能执行 1 次操作,例如上面的1111和4444分别只有1买入和1卖出。
标签: sql sql-server sql-server-2008