0
我有这个查询,其中我想要做的是如果id和值为null,它将只显示值0.111上的行是空值。检查是否存在行,如果它不输出具体的值
SELECT FROM_UNIXTIME(t_stamp/1000, '%m/%d/%Y %l:%i %p') as t_stamp,
ROUND(MAX(
CASE
WHEN id = "731" AND value IS NULL THEN 0.11
WHEN id = "731" THEN value
END
),3
) as Val1,
ROUND(MAX(
CASE
WHEN id = "732" AND value IS NULL THEN 0.11
WHEN id = "732" THEN value
END
),3
) as Val2
FROM table1
WHERE id IN ("731", "732") and
from_unixtime(t_stamp/1000) BETWEEN "2014-11-01 09:00:00" AND "2014-11-01 12:00:00"
GROUP BY DATE(from_unixtime(t_stamp/1000)), HOUR(from_unixtime(t_stamp/1000)), MINUTE(from_unixtime(t_stamp/1000)) DIV 1
我一直在这个努力了几次,它不工作,原因是,当我检查了数据库,问题是该行不为空,之所以它不是后的第一个“何时”是因为该行不存在。
的数据看起来像这样
| t_stamp | Val1 | Val2 |
| 11/01/2014 9:00 AM | 0.022 | 0.044 |
| 11/01/2014 9:01 AM | 0.023 | 0.045 |
| 11/01/2014 9:02 AM | 0.022 | 0.044 |
| 11/01/2014 9:03 AM | 0.022 | 0.044 |
| 11/01/2014 9:04 AM | 0.022 | 0.044 |
| 11/01/2014 9:05 AM | NULL | 0.046 |
| 11/01/2014 9:06 AM | 0.023 | 0.040 |
没有一行9:05 AM。这是我所期待的输出:
| t_stamp | Val1 | Val2 |
| 11/01/2014 9:00 AM | 0.022 | 0.044 |
| 11/01/2014 9:01 AM | 0.023 | 0.045 |
| 11/01/2014 9:02 AM | 0.022 | 0.044 |
| 11/01/2014 9:03 AM | 0.022 | 0.044 |
| 11/01/2014 9:04 AM | 0.022 | 0.044 |
| 11/01/2014 9:05 AM | 0.11 | 0.046 |
| 11/01/2014 9:06 AM | 0.023 | 0.040 |
我检查了ID 731 VAL并没有一个单独的具有只是ID选择,发现有一个为时间9:05 AM排不出,但732有是。
这可能没有实际上做一个INSERT,只是输出0.11值?
谢谢!它的工作现在!真棒真棒真棒! – hocuspocus31 2014-11-22 00:11:58