某年月的數量統計(Mysql)

edited 十一月 -1 in 資料庫
如題,
假設Table A有兩欄:Amount(int), Date(datetime), 大概長這樣
Amount Date
2 2010-03-03 05:51:55
3 2010-04-04 06:36:47
6 2010-05-03 18:42:49
6 2010-05-06 18:42:49
我想找出2009年5月的所有數量合計(秀一筆總計),應該怎麼做?

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=5068

評論

  • edited 四月 2010
    這個問題似乎跟我以前問的類似
    http://twpug.net/x/modules/newbb/viewtopic.php?viewmode=flat&type=&topic_id=4784&forum=13

    可以用 SELECT SUM(CASE WHEN(條件) THEN 1 ELSE 0 END)AS `自定意欄位名` FROM `資料表`
    最後就可以得到你要的加總
    以下範例:
    SELECT SUM(CASE WHEN (EDM_TIME >= "1000000000" AND EDM_TIME < "2000000000") THEN 1 ELSE 0 END)AS 'TOTAL_COUNT' FROM edm_count

    不過這是我自己的範例,在時間資料格式上跟你不大一樣,你是使用DATETIME
    在設定時間費為條件時可以用TIMESTAMPDIFF
    這裡有相關的範例http://www.java2s.com/Tutorial/MySQL/0280__Date-Time-Functions/0940__TIMESTAMPDIFF.htm

    (糟糕我好像越來越懶惰了!怎麼都丟範例或手冊...orz)

  • 1.若 Date 改成 MyDate,Amount 與 MyDate 放在 table x 內
    上面只有 2010-05 的資料 ,所以 2009年5月的加總 =0 ;
    2.若是要找 2010-05 的加總,sql 如下

    select sum(Amount)
    from x
    where substr(MyDate,1,7)='2010-05'
    group by substr(MyDate,1,7)
  • 另一個寫法
    select sum(Amount)
    from Table A
    where Date >= '2010-05-01 00:00:00'
    and Date >= '2010-06-01 00:00:00'
Sign In or Register to comment.