-1
1か月間にわたって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とtenancyの外部キーに基づいて異なる方法でテーブルを結合する必要があると思います –
http://meta.stackoverflow.com/questions/333952/why-should-i-provide-非常にシンプルなSQLクエリであると思われる – Strawberry