作者jackghost (~~无相~~)
看板Database
标题Re: [SQL ] GROUP BY跨天问题
时间Fri Nov 5 22:50:54 2010
正常情况下去想,需要写很多判断
不过换个想法,可以偷机,就是在日期上动手脚
凡是时间为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