У меня есть простая таблица mysql, которую я хочу обобщить.Вот моя таблица
Имя таблицы: hauling_trip
Столбцы:
ID, CONTRACTOR, HAULING_SHEET_NO, FROM_LOCATION, TO_LOCATION, LOAD_WEIGHT_KG, PASS_NO
Данные:
1 PM A00001 Stumping A Pangkalan 940.00 112233
2 PM A00002 Stumping B Pangkalan 530.00 112233
3 PM A00003 Stumping B Pangkalan 970.00 112244
4 PM A00004 Stumping A Pangkalan 450.00 112244
5 TKF A00005 Stumping A Pangkalan 850.00 112255
6 TKF A00006 Stumping B Pangkalan 780.00 112255
7 TKF A00007 Stumping A Pangkalan 903.00 112266
Что я хочу сделать, этоЯ хочу суммировать эту таблицу, показывая общее количество отключений и вес нагрузки (кг) каждого PASS_NO.Вот желаемый результат
PASS_NO CONTRACTOR WEIGHT_A TRIP_A WEIGHT_B TRIP_B
112233 PM 940.00 1 530.00 0
112244 PM 450.00 0 970.00 1
112255 TKF 850.00 1 780.00 0
112266 TKF 903.00 1 0.00 0
Идентичный PASS_NO означает, что выборочные листы принимаются за 1 поездку.Например, лист выборки A00001 и A00002 имеют одинаковое значение PASS_NO, равное 112233. Таким образом, оба листа выборки принадлежат 1 поездке, и эта поездка принадлежит FROM_LOCATION Stumping A, потому что вес больше, чем Stumping B.
Здесьзапрос, над которым я работаю в данный момент.Но я не могу понять, как правильно организовать поездку.
SELECT
a.PASS_NO,
a.CONTRACTOR,
( SELECT sum( LOAD_WEIGHT_KG ) FROM hauling_trip WHERE PASS_NO = a.PASS_NO AND FROM_LOCATION = 'Stumping A' ) AS WEIGTH_A,
( SELECT count( PASS_NO ) FROM hauling_trip WHERE PASS_NO = a.PASS_NO AND FROM_LOCATION = 'Stumping A' ) AS TRIP_A,
( SELECT sum( LOAD_WEIGHT_KG ) FROM hauling_trip WHERE PASS_NO = a.PASS_NO AND FROM_LOCATION = 'Stumping B' ) AS WEIGHT_B,
( SELECT count( PASS_NO ) FROM hauling_trip WHERE PASS_NO = a.PASS_NO AND FROM_LOCATION = 'Stumping B' ) AS TRIP_B,
SUM(a.LOAD_WEIGHT_KG) AS TOTAL_WEIGHT
FROM
hauling_trip AS a
GROUP BY
a.PASS_NO, a.CONTRACTOR