完全なレポートを作成するには、7 つの異なるテーブルから 8 つのクエリを 1 つのクエリに組み合わせて複雑なクエリを作成する必要があります。基本的な組み合わせはできますが、このクエリではうまくいきません。複雑な結合クエリについて Web を閲覧しましたが、うまくいきません...
すべてのテーブルは「plant_id」を介してリンクされていますが、一部のデータは最新のエントリであり、一部は当月の計算されたエントリなどです。以下のクエリはすべて単独で完全に機能しますが、次のように組み合わせる必要があります:
[ plant_id, plant_make_id, plant_model ],[ current_plant_hrs, plant_hours_total ],[ plant_error_report ],[ plant_service_next ],[ plant_status_ddl_id ],[総ディーゼル使用量、消費量 ],[ location_id ]
内訳と個々のクエリの下:-
1 plant [ plant_id, plant_make_id, plant_model ],
SELECT `plant_id`,`plant_make_id`,`plant_model`
FROM `plant`
2 plant_hrs [ current_plant_hrs, plant_hours_total ],
A
SELECT `plant_hrs_stop`
FROM `plant_hrs` s1
WHERE `plant_hrs_date`=(SELECT MAX(s2.`plant_hrs_date`)
FROM `plant_hrs` s2
WHERE s1.`plant_id` = s2.`plant_id`)
ORDER BY `plant_id`
B
SELECT (MAX(`plant_hrs_stop`)- MIN(`plant_hrs_start`) )total_hrs
FROM`plant_hrs`
WHERE MONTH(`plant_hrs_date`)= MONTH( CURRENT_DATE )
GROUP BY`plant_id`
3 plant_error [ plant_error_report ],
SELECT `plant_error_report`
FROM `plant_error` s1
WHERE `plant_error_date`=(SELECT MAX(s2.`plant_error_date`)
FROM `plant_error` s2
WHERE s1.`plant_id` = s2.`plant_id`)
ORDER BY `plant_id`
4 plant_service [ plant_service_next ],
SELECT `plant_service_hrs` , `plant_service_next`
FROM `plant_service` s1
WHERE `plant_service_date`=(SELECT MAX(s2.`plant_service_date`)
FROM `plant_service` s2
WHERE s1.`plant_id` = s2.`plant_id`)
ORDER BY `plant_id`
5 plant_status [ plant_status_ddl_id ],
SELECT `plant_status_ddl_id`
FROM `plant_status`
WHERE `plant_status_date` = ( CURRENT_DATE ) - 1
GROUP BY `plant_id
6 diesel [ total diesel used, consumption ], // 'plant_id = diesel_vehicle_no'
SELECT (SUM(`diesel_qty`) )total_d
FROM`diesel`
WHERE MONTH(`diesel_date`)= MONTH( CURRENT_DATE )
GROUP BY `diesel_vehicle_no`
7 plant_location [ location_id ]
SELECT `location_id` FROM `plant_location`
ORDER BY `plant_id`
どんな助けでも大歓迎です...