目前我要求如果时间是当天中午之前,那么它应该只采用当天的上一天的item_2值。对于其他人来说,它将采取适当的价值观。
id | item_1 | item_2 | date
1 205 3 2015-04-07
2 215 35 2015-04-06
3 225 15 2015-04-05
4 235 315 2015-04-04
预计结果时间是中午之前
id | item_1 | item_2 | sum | date
1 205 35 240 2015-04-07
2 215 35 250 2015-04-06
3 225 15 240 2015-04-05
4 235 31 266 2015-04-04
预计结果是在中午之后
id | item_1 | item_2 | sum | date
1 205 3 208 2015-04-07
2 215 35 250 2015-04-06
3 225 15 240 2015-04-05
4 235 31 266 2015-04-04
可以在php中使用日期和时间,以及如何在同一查询中管理prev和当天记录。我尝试使用子查询,但我认为它也可以通过其他方式完成。
提前致谢。
答案 0 :(得分:0)
在这种情况下,您必须在查询中使用 CASE :
试试这个:
SET @time := 'BFNOON';
SET @date := '2015-04-07 00:00:00';
SELECT id, item_1, item_2, (item_1 + item_2) AS sum_item, dates FROM (
SELECT id, item_1,
(CASE
WHEN (@time = 'BFNOON' AND dates = @date) THEN
(
SELECT item_2 FROM records WHERE dates < @date ORDER BY dates DESC LIMIT 1
) ELSE
item_2
END ) item_2
, dates
FROM records ) records
注意:删除声明和 替换@time ='BFNOON'在中午之前或之后检查 和@date,你的日期值是今天