【问题标题】:SQL Query To See if Sums Dont Add UpSQL 查询以查看 Sims 是否加起来
【发布时间】:2020-01-02 06:08:47
【问题描述】:

我有下面两个表在一个数据库中

有没有SQL查询可以从invoice明细表中获取所有invoicesamounts,看invoicenum中detailamount的总和是否与invoice表中对应invoice number的总invoiceamount相加?

p>

发票表

invoicenum | invoicedate | invoiceamount
-----------+-------------+--------------
00551198 | 1/1/2014 | $150.5
00551199 | 1/2/2014 | $10

发票明细表

invoicenum | trackingno | detailamount
-----------+--------------------+-------------
00551198 | 1Z2F12346861507266 | $50
00551198 | 1Z2F12346861507267 | $80
00551198 | 1Z2F12346861507268 | $20.5
00551199 | 1Z2F12346861503423 | $10.5

【问题讨论】:

    标签: sql qsqlquery


    【解决方案1】:

    聚合和join 应该可以解决问题:

    select i.*, id.sumdetail
    from invoices i left join
         (select id.invoicenum, sum(detailamount) as sumdetail
          from invoicedetail id
          group by id.invoicenum
         ) id
         on i.invoicenum = id.invoicenum
    where id.sumdetail <> i.invoicenum or id.sumdetail is null;
    

    【讨论】:

      【解决方案2】:

      这是您的查询

      select *, case when t1.s=i.invoiceamount then 'equal' else 'not equal' end from invoice i 
      left join
      (select sum(detailamount) as s, invoicenum from invoicedetail group by invoicenum) as t1
      on t1.invoicenum = i.invoicenum
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-26
        • 1970-01-01
        • 1970-01-01
        • 2014-01-07
        • 2023-01-28
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        相关资源
        最近更新 更多