【问题标题】:How to select SQL results grouped by date如何选择按日期分组的 SQL 结果
【发布时间】:2017-06-28 19:14:57
【问题描述】:

我想按日期从下表组中选择数据

date        btype       amount
1-2-2017    income      1000
1-2-2017    income      200
1-2-2017    Expense     100
1-2-2017    Expense     200

2-2-2017    income      1000
2-2-2017    income      500
2-2-2017    Expense     1000

3-2-2017    income      2000
3-2-2017    Expense     500

所以我的结果应该是这样的。

date        Income      Expense
1-2-2017    1200        300
2-2-2017    1500        1000
3-2-2017    2000        500

有人会指导我如何编写 SQL 查询来实现这种行为!

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    这是相当简单的 SQL,您应该能够通过一些 google 弄清楚自己:

    select date
          ,sum(if(btype = 'income', amount, 0)) as Income
          ,sum(if(btype = 'expense', amount, 0)) as Expense
    from table
    group by date
    

    【讨论】:

      【解决方案2】:

      创建测试表后,我插入了一些记录,然后我使用了这个查询:

      select date_ as Date_Time, btype, sum(amount) as amount
       from test
       group by date_ , btype
      

      【讨论】:

      • 请将脚本和结果作为文本添加到您的问题中。如果您需要格式化结果,请转到 ozh.github.io/ascii-tables 并粘贴到您的 SSMS 输出中。
      • 请不要发布图片。
      【解决方案3】:

      另一种方法

      select date
            ,sum(case when btype = 'income' then amount else 0 end) as Income
            ,sum(case when btype = 'expense' then amount else 0 end) as Expense
      from table
      group by date
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-12
        • 2020-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-30
        相关资源
        最近更新 更多