【发布时间】:2015-11-09 12:12:42
【问题描述】:
我有两个包含订单的表。我需要检查表格是否匹配。表格如下所示,
tblOrders_Sent
Side Tag FxBuy BuyAmount FxCost CostAmount
B CHFEUR CHF 50 EUR 0
B EURSEK SEK 75 EUR 0
B EURNOK NOK 35 EUR 0
B DKKEUR DKK 20 EUR 0
S CHFEUR EUR 0 CHF 10
S EURSEK EUR 0 SEK 20
S EURNOK EUR 0 NOK 40
tblOrders_Recieved
Tag FxBuy MktBuy FxCost MktCost
EURNOK NOK 35 EUR 0
DKKEUR DKK 20 EUR 0
CHFEUR CHF 50 EUR 0
EURSEK SEK 75 EUR 0
EURNOK EUR 0 NOK 40
EURSEK EUR 0 SEK 20
CHFEUR EUR 0 CHF 10
当 Orders_Sent 表中的边为“B”时,我需要根据 Orders_Recieved 表中的 MktBuy 金额检查 BuyAmount。如果 Side 是“S”,但我需要检查 Orders_Recieved 表中的 CostAmount 与 MktCost。这是可能的还是我需要将查询拆分为两个单独的查询?
我使用的是 SQL Server 2012
期望的输出
FxBuy FxCost SentAmt RecievedAmt Diff
CHF EUR 50 50 0
SEK EUR 75 75 0
NOK EUR 35 35 0
DKK EUR 20 20 0
EUR CHF 10 10 0
EUR SEK 20 20 0
EUR NOK 40 40 0
【问题讨论】:
-
你也可以添加预期的结果吗?
-
当您使用相同的货币对进行多次交易时会发生什么?要么指定这不可能发生,要么编辑您的问题并描述如何处理这种情况。
-
可能有多个交易使用相同的货币对——抱歉我应该指出这一点。虽然金额总是不同的
-
我已经更新了我希望实现的输出
-
是的,这是可能的。关键字是
case expression。
标签: sql sql-server sql-server-2012