Pages

Subscribe:

Ads 468x60px

Labels

2014年2月23日 星期日

某年月的數量統計(Mysql)

如題,
假設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月的所有數量合計(秀一筆總計),應該怎麼做?

可以用 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

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'


資料來源

沒有留言:

張貼留言