mysql - 如何按日期分组

标签 mysql sql

下面我无法对下面的数字进行按日期分组

我尝试将分组依据放在不同的行中,但不起作用。

SELECT SUM(a.NetAmount) AS TotalDonation
FROM (
 SELECT
  (
   CASE WHEN bt.BalanceTransactionCurrencyID = 17
    THEN bt.BalanceTransactionNet
   ELSE
    bt.BalanceTransactionNet * (SELECT TOP 1 ExrateValue FROM Exrate WHERE ExrateDate < bt.BalanceTransactionCreated AND bt.BalanceTransactionCurrencyID = CurrencyID ORDER BY ExrateDate Desc)
   END
  ) AS NetAmount

 FROM Charge as ch

 JOIN BalanceTransaction as bt ON (ch.BalanceTransactionID = bt.BalanceTransactionID)

 WHERE ch.ChargeCreatedDate BETWEEN '3-1-2019' AND '3-31-2019'

) AS a

我想看看:

Days              Total Amount
March 1           xxxx
March 2           xxxx
March 3           xxx

最佳答案

MySQL 不使用TOP。使用LIMIT:

SELECT ChargeCreatedDate, SUM(netamount)
FROM (SELECT ch.ChargeCreatedDate,
             (CASE WHEN bt.BalanceTransactionCurrencyID = 17
                   THEN bt.BalanceTransactionNet
                   ELSE bt.BalanceTransactionNet * (SELECT e.ExrateValue
                                                    FROM Exrate e
                                                    WHERE e.ExrateDate < bt.BalanceTransactionCreated AND
                                                          e.CurrencyID = bt.BalanceTransactionCurrencyID 
                                                    ORDER BY ExrateDate Desc
                                                    LIMIT 1
                                                   )
              END) AS NetAmount
      FROM Charge ch JOIN
           BalanceTransaction bt
           ON ch.BalanceTransactionID = bt.BalanceTransactionID
      WHERE ch.ChargeCreatedDate BETWEEN '2019-03-01' AND '2019-03-31'
     ) chtbt
GROUP BY ChargeCreatedDate;

如果您碰巧使用 SQL Server,则可以将 LIMIT 1 替换为 FETCH FIRST 1 ROW ONLY

关于mysql - 如何按日期分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55613719/

相关文章:

mysql - 如果没有指定聚合函数,MySQL 会做什么?

php - 尝试确定 PHP/MySQL 中的日期差异,并传递给数据表

mysql - 用常量值更新表

PHP 或 SQL 问题

mysql - 如何在6个数据库之间选择公共(public)行并对结果进行排序?

mysql - 在输入 SQL 之前如何从 JSON 文件中清除 'emojis'

基于选定/默认下拉列表的 Php 查询并在同一页面上输出

mysql - 关联 3 个 SQL 实体的建议

sql - 需要为文本正文中的特定单词格式化 BigQuery 中的表格

sql - 如何创建一个列,其中包含另一个表中值的计数?