我希望能够将一些销售分组以获得总数,但是一天是基于前一天晚上18:00:00到17:59:59。
问题是时间只是hh:mm:ss在它自己的列中并且日期是独立的,所以我找到的解决方案不会起作用,因为两列都需要作为一个。
CREATE TABLE IF NOT EXISTS `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`exported` int(11) NOT NULL,
`acc` varchar(512) NOT NULL,
`card` varchar(512) NOT NULL,
`transdate` varchar(255) NOT NULL,
`product` int(11) NOT NULL,
`qty` decimal(12,2) NOT NULL,
`total_incl` decimal(12,2) NOT NULL,
`time` time NOT NULL,
`email` varchar(512) NOT NULL,
`realdate` date NOT NULL,
)
这是我想用来获得我想要的查询,但我希望它基于时间18:00:00在一个更新到下一个17:59:59。我无法更改表格结构。
SELECT SUM( `total_incl` ) , LEFT( `product` , 1 ) AS product, `realdate`
FROM `tbl_opttrans`
WHERE `acc` = ''
GROUP BY LEFT( `product` , 1 ) , `realdate`
任何帮助都会很棒。
答案 0 :(得分:0)
从汇总日期开始减去6小时:
SELECT SUM(`total_incl`) , LEFT(`product`, 1) AS product,
(case when time >= '18:00:00' then date_add(realdate, interval 1 day)
else realdate
end) as realdate
FROM `tbl_opttrans`
WHERE `acc` = ''
GROUP BY LEFT(`product`, 1),
(case when time >= '18:00:00' then date_add(realdate, interval 1 day)
else realdate
end)