正常情況下去想,需要寫很多判斷
不過換個想法,可以偷機,就是在日期上動手腳
凡是時間為05:00:00之前的,一律日期減一,反之不減
比如說第一筆2010-11-05 04:59:59 -->2010-11-04
第二筆和第三筆同邏輯,則歸類於----->2010-11-05
你再用那個轉換過後的日期來GROUP就可以了
※ 引述《kalecgos0616 (.)》之銘言:
: 資料庫是MySQL 5.0.27
: 現在資料表有這些資料
: Table
: Time Type1 Value1 Type2 Value2
: 2010-11-05 04:59:59 a 100 b 200
: 2010-11-05 08:00:00 b 300 a 100
: 2010-11-06 01:00:00 b 200 b 300
: 我要統計每天早上05:00:00後到隔日早上04:59:59之間的資料為一筆
: 我現在這樣寫
: SELECT SUM(IF(`Type1`='a', `Value1`, 0))+SUM(IF(`Type2`='a', `Value2`, 0)) AS
: A,
: SUM(IF(`Type1`='b', `Value1`, 0))+SUM(IF(`Type2`='b', `Value2`, 0)) AS
: B,
: SUBSTR( `Time` , 1, 10 )
: FROM Table
: WHERE 1
: GROUP BY SUBSTR( `Time` , 1, 10 )
: 這樣會變成,第一、二筆資料算在一起
: A B Time
: 200 500 2010-11-05
: 0 500 2010-11-06
: 我希望是第二、三筆資料算在一起
: A B Time
: 100 200 2010-11-04
: 100 800 2010-11-05
: 請問該怎麼下SQL語法呢?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.253.215.163