【问题标题】:Calculate difference in values between 2 tables计算 2 个表之间的值差异
【发布时间】: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


    【解决方案1】:
    Select orderid, (grandtotal-credits)
    from orders
    left join (select sum(credit) as credits from journal group by orderid) as credits on credits.orderid=jornal.orderid
    where orders.paid=false and customerid=@Customerid
    

    我确实离开了加入,以防您的所有客户都没有积分。

    【讨论】:

      猜你喜欢
      • 2015-03-14
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多