我试图得到两行的结果集。
这两行是在BETWEEN运算符中指定的时间间隔之间找到的最后一行。
我怎样才能达到这个结果?
下面的代码不起作用。
SELECT
DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5
AS october
FROM solarenergy
WHERE ((DatumUhrzeit BETWEEN '2014-10-01 01:00:00' AND '2014-10-01 23:00:00') LIMIT 1)
OR ((DatumUhrzeit BETWEEN '2014-10-02 01:00:00' AND '2014-10-02 23:00:00') LIMIT 1)
ORDER BY DatumUhrzeit DESC
您将需要执行一次UNION
才能应用两个单独的LIMIT
,因为每个查询只能使用一个。要使用单独的LIMIT
子句,每个UNION
组件都必须包装在其中()
(
SELECT
DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5 AS october
FROM solarenergy
WHERE DatumUhrzeit BETWEEN '2014-10-01 01:00:00' AND '2014-10-01 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) UNION (
SELECT
DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5 AS october
FROM solarenergy
WHERE DatumUhrzeit BETWEEN '2014-10-02 01:00:00' AND '2014-10-02 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
)
如果要保证产生的两行订单UNION
,则必须在()
组末尾应用
(
SELECT
DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5 AS october
FROM solarenergy
WHERE DatumUhrzeit BETWEEN '2014-10-01 01:00:00' AND '2014-10-01 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
) UNION (
SELECT
DaySum_1+DaySum_2+DaySum_3+DaySum_4+DaySum_5 AS october
FROM solarenergy
WHERE DatumUhrzeit BETWEEN '2014-10-02 01:00:00' AND '2014-10-02 23:00:00'
ORDER BY DatumUhrzeit DESC
LIMIT 1
)
/* Global ORDER BY after UNION */
ORDER BY october ASC
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句