0

日付(unixtime)に基づいて合計(合計)を選択して概要を生成したいアクティビティを格納するテーブルがあります

たとえば、123456789から2000000までの日付が次のようなリストからSUM(合計)を選択します。

しかし、1つのクエリでより多くの日付範囲を取得したい

次のようなリスト可能な結果を​​得るには

  • 2日前の合計(合計)
  • 昨日の合計(合計)
  • 今日の合計(合計)

等々 ...

4

2 に答える 2

1

は必要ありませんUNION。このようなものが機能するはずです:

select SUM(total) as Total,
    SUM(
        case when date >= DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 2 DAY) 
            and date < DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY) then total end
    ) TwoDaysAgoTotal,
    SUM(
        case when date >= DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY) 
            and date < CONCAT(CURDATE(), ' 00:00:00') then total end
    ) as OneDayAgoTotal,
    SUM(
        case when date >= CONCAT(CURDATE(), ' 00:00:00') then total end
    ) as TodayTotal
from list
where date between 123456789 and 2000000
于 2012-05-14T23:56:13.797 に答える
0

ユニオンステートメントはあなたのケースを解決しませんか?http://dev.mysql.com/doc/refman/4.1/pt/union.html

于 2012-05-14T23:48:50.590 に答える