【问题标题】:SQL query for obtain correct retarded dept in a reportSQL查询在报告中获得正确的迟钝部门
【发布时间】:2013-09-17 13:12:24
【问题描述】:

有一个包含这些字段的付款表:

  1. Dossier_id
  2. 年份
  3. 金额
  4. 已付款
  5. 延迟 (所有字段都是数字)

想象一下包含这些条目的表格:

    Dossier_id ||   Year   ||     Amount    ||    Payed    || Retarded
    ==================================================================
     1000           2010           500           100          400
     2000           2007           700           500          200
     1000           2011           1200          700          500
     2000           2009           900           800          100
    ==================================================================
              Total        ||      3300          2100         600
    ==================================================================

我如何编写查询来计算(仅)该表的末尾部分(总计)以实现正确的延迟率作为总负债? (我玩过内部连接,但我想不通)

【问题讨论】:

  • 这取决于你如何获得 600?
  • 因为他/她在明年支付了迟到的金额,我们应该只计算去年最后一次迟到的金额。
  • 是每个 Dossier_id 的总数还是总和?除非您进行平均,否则您的延迟总数应该是两倍?你可以更具体一点..
  • @MilenPavlov : 总和

标签: sql ms-access accounting


【解决方案1】:

应该这样做:

SELECT SUM(a.amount), sum(a.payed), b.retarded
FROM table a INNER JOIN (SELECT SUM(retarded) AS retarded
               FROM table b INNER JOIN (SELECT dossier_id, MAX(year) FROM table) c ON b.dossier_id = c.dossier_id AND b.year = c.year) b ON 1 = 1

编辑(愚蠢的访问 - join not supported issue):

SELECT SUM(a.amount), sum(a.payed), b.retarded
FROM table a INNER JOIN (SELECT SUM(retarded) AS retarded
               FROM table b INNER JOIN (SELECT dossier_id, MAX(year) FROM table) c ON (b.dossier_id = c.dossier_id AND b.year = c.year)) b ON (1 = 1)

【讨论】:

  • SELECT p1.paySUM,p2.retardedSUM FROM (SELECT sum(payed) as paySUM FROM payment WHERE year
  • 不支持连接表达式
  • 不再支持加入表达式!它适用于我发送的那个查询。感谢您的关注alotttt
【解决方案2】:

就是这个简单的查询:

SELECT    SUM(AMOUNT), SUM(PAYED), SUM(RETARDED) FROM TABLE;

【讨论】:

  • 试试 ROLLUP 和 GROUPING 子句。
猜你喜欢
  • 2018-02-01
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多