-1
我想經過一段一個月做一個查詢。這是一個工作查詢:MySQL的滾動值 - 子查詢與業增加值
SELECT AVG(days)
FROM (SELECT datediff(IF(MIN(date_end) = '0000-00-00', DATE(NOW()), MAX(date_end)), MIN(date_start)) AS days
FROM tenancies
WHERE deleted_at IS NULL AND date_start < DATE_SUB(NOW(), INTERVAL 1 MONTH)
GROUP BY tenancies.tenant_id)
我想用日期替換NOW()
。
我有另一個查詢:
SELECT calendar_date
FROM calendar_dates
WHERE calendar_date BETWEEN NOW() - INTERVAL 1 MONTH AND NOW()
這讓我所有我想要的日期。如果我嘗試做一個雙重子查詢它不承認calendar_date
:
SELECT calendar_date, (SELECT AVG(days)
FROM (SELECT datediff(IF(MIN(date_end) = '0000-00-00', DATE(calendar_date), MAX(date_end)), MIN(date_start)) AS days
FROM tenancies
WHERE deleted_at IS NULL AND date_start < DATE_SUB(calendar_date, INTERVAL 1 MONTH)
GROUP BY tenancies.tenant_id) d) AS days
FROM calendar_dates
WHERE calendar_date BETWEEN NOW() - INTERVAL 1 MONTH AND NOW()
任何人有什麼建議?
我認爲添加您的表格模式會澄清您的問題,您的查詢是有線的,我認爲您需要以完全不同的方式重寫它!事實上,我認爲你需要根據字段的位置以及calendar_dates和tenancies的外鍵以不同方式連接表格 –
請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide- AN-MCVE換什麼,似乎對我將要-A-極簡單的SQL查詢 – Strawberry