【发布时间】:2014-07-21 19:06:08
【问题描述】:
希望有SQL高手可以指教并提供最高效的t-sql代码来检索以下结果。
我有 2 张桌子。
订单和日志。
订单将有一个 OrderID、CustomerID、GrandTotal 和 Paid 列。
日记帐将有 OrderID 和 Credit 字段。
对于每个 Orders 行,Journal 中可能有超过 1 个相关行。 我想检索 OrderID 和未完成 (GrandTotal - Sum(Credit)) 的结果,其中 CustomerID=@CustomerID 和 Paid=false
例如。在订单表中
OrderID:1,CustomerID:1,GrandTotal:1000,payed=false
OrderID:2,CustomerID:1,GrandTotal:200,payed=false
OrderID:3,CustomerID:1,GrandTotal:500,payed=false
OrderID:4,CustomerID:2,GrandTotal:500,paid=true
在日记帐表中
订单 ID:1,信用:100
订单 ID:1,信用:200
订单 ID:2,信用:100
订单 ID:4,信用:500
所以结果会是
OrderID:1,未结:700(1000-Sum(100+200)
OrderID:2,GrandTotal:100(200-Sum(100))
订单 ID:3,总计:100
【问题讨论】:
标签: sql sql-server stored-procedures subquery