У меня по 4 таблицы с этими подробностями на каждой таблице
Таблица deli_order
order_code | code | plat_create_time | status
OC001 C001 2019-04-14 Success
OC002 C002 2019-04-14 Success
OC003 C003 2019-04-14 Success
pg_order Таблица
id |order_code | code | plat_create_time
1 OC001 C001 2019-04-14
2 OC002 C002 2019-04-14
3 OC003 C003 2019-04-14
Таблица pg_package
pg_order_id | plat_create_time | cm_sign_time
1 2019-04-14 2019-04-14
2 2019-04-14 2019-04-14
3 2019-04-14 -
Таблица pg_send_package
order_code | code | plat_create_time | lp_sign_time
OC001 C001 2019-04-14 -
OC002 C002 2019-04-14 -
OC003 C003 2019-04-14 2019-04-14
Мне нужно подсчитать данные транзакции, которые имеют 'cm_sign_time' или'lp_sign_time.Таблицу pg_package нужно сначала соединить с pg_order, после этого ее можно соединить с таблицей deli_order.
Сначала я пытаюсь сначала соединить таблицу pg_send_package с таблицей deli_order.Это мой запрос
SELECT
DATE(A.create_time) AS 'Create Time',
SUM(CASE
WHEN B.lp_sign_time IS NOT NULL THEN 1
ELSE 0
END) AS 'Completed Order'
FROM
deli_order A
INNER JOIN pg_send_package B ON B.order_code = A.order_code AND B.code = A.code
WHERE DATE(A.plat_create_time) = '2019-04-14'
GROUP BY DATE(A.plat_create_time);
и результат
Create Time | Completed Order
2019-04-14 130
Но когда я присоединяюсь к двум другим таблицам, полученный результат - ничто.Это мой запрос
SELECT
DATE(A.plat_create_time) AS 'Create Time',
SUM(CASE
WHEN B.lp_sign_time IS NOT NULL THEN 1
WHEN D.cm_sign_time IS NOT NULL THEN 1
ELSE 0
END) AS 'Completed Order'
FROM
deli_order A
INNER JOIN pg_send_package B ON B.order_code = A.order_code AND B.code = A.code
INNER JOIN pg_order C ON C.order_code = A.order_code AND C.oms_code = A.code
INNER JOIN pg_package D ON D.pg_order_id = C.id
WHERE
DATE(A.plat_create_time) = '2019-04-14'
GROUP BY DATE(A.plat_create_time);
Это результат
Create Time | Completed Order
Мне нужно суммировать результат подсчета транзакции, в которой есть 'lp_sign_time' или 'cm_sign_time'.
Мой ожидаемый результат:
Create Time | Completed Order
2019-04-14 150
150 получен из 130 транзакций с 'lp_sign_time' и 20 транзакций с 'cm_sign_time' Что я должен изменить в своем запросе?