我想返回一個產品連同其最新值和最近一小時的值。mysql:獲取最新的值和前一小時的值的總和
我有一個產品表:
id, name, type (and so on)...
我有一個值表:
id_prod, timestamp, value
喜歡的東西:
12:00:00 = 10
12:15:00 = 10
12:30:00 = 10
12:45:00 = 10
13:00:00 = 10
13:15:00 = 10
13:30:00 = 10
我想返回的查詢最新價值(13:30:00)以及一小時後的價值總和。這應返回:
time = 13:30:00
latestread = 10
lasthour = 40
我差點工作是:
SELECT *,
(SELECT value FROM values S WHERE id_prod=P.id
ORDER BY timestamp DESC LIMIT 1) as latestread,
(SELECT sum(value) FROM values WHERE id_prod=D.id and
date_created>SUBTIME(S.date_created,'01:00:00')) as trendread
FROM prod P ORDER BY name
但這種失敗, 「未知列 'S.date_created' 在 'where子句'」
有什麼建議?
@AgRizzo我更新了我的答案 –
是的,這讓它爲我工作。但是,如果我不更改「SELECT max(date_created)FROM values WHERE product_id = v2.product_id」到「SELECT max(date_created)FROM values WHERE product_id = 99」(其中99是產品的實際ID)我查詢)。我不明白爲什麼...但無論如何,現在它的工作! Thx – johnjohn22