【发布时间】:2017-04-09 18:24:23
【问题描述】:
我有一个包含几行的简单表格,我想按id_room 对它们进行分组,并仅在条件为真时选择值。问题是即使有一行具有正确的日期列year_month,条件总是错误的。
这是架构:
CREATE TABLE tbl_account_room (
`id` int,
`year_month` date,
`value` int,
`id_room` int
);
INSERT INTO tbl_account_room
(`id`, `year_month`, `value`, `id_room`)
VALUES
(1, '2016-08-01', 1, 300),
(2, '2016-09-01', 2, 300),
(3, '2016-10-01', 3, 300);
这里查询:
SELECT
(case when '2016-10-01' = ar.year_month then ar.value else 0 end) as total
FROM tbl_account_room AS ar
WHERE ar.year_month >= "2016-08-01"
AND ar.year_month <= "2016-11-01"
and ar.id_room = '300'
GROUP BY ar.id_room
LIMIT 10
这里是SQL Fiddle
在total 列中,我得到 0,我想得到值 3,因为 year_month 是 2016-10-01。为什么会这样?
【问题讨论】:
标签: mysql sql select group-by conditional-statements