выбор данных из нескольких таблиц дата за датой - PullRequest
0 голосов
/ 06 января 2020

У меня есть 3 разные таблицы с именами job_party, job_party_details и job_party_delv. В котором job_party является основной таблицей, а другие - подробными таблицами. Я пытаюсь собрать данные по дате из всех этих таблиц. Я написал следующий запрос и получил идеальные данные, но проблема в том, что данные из job_party_details идут первыми, а job_party_delv - последними. Я хочу, чтобы все данные были сразу по дате.

SELECT job_party.on_date
     , SUM(job_party_details.qty) as detail_qty
     , NULL as delv 
  FROM job_party_details d
  JOIN job_party p
    on d.jp_id = p.id 
 where p.party_id = 9 
   and d.i_id = 1 
 GROUP 
    BY p.on_date 
 UNION
SELECT p.on_date
     , NULL as detail_qty
     , SUM(d.d_qty) as delv 
  FROM job_party_delv d 
   JOIN job_party p 
    on d.jp_id = p.id 
 where p.party_id = 9 
   and d.i_id = 1 
 GROUP 
    BY p.on_date

1 Ответ

0 голосов
/ 06 января 2020

Замените NULL на 0, затем сделайте запрос как подзапрос и выполните еще один SUM для внешнего запроса GROUP BY on_date, например:

SELECT on_date,SUM(detail_qty) as detail_qty, SUM(delv) as delv 
FROM
(SELECT job_party.on_date
     , SUM(job_party_details.qty) as detail_qty
     , 0 as delv 
  FROM job_party_details d
  JOIN job_party p
    on d.jp_id = p.id 
 where p.party_id = 9 
   and d.i_id = 1 
 GROUP 
    BY p.on_date 
 UNION
SELECT p.on_date
     , 0 as detail_qty
     , SUM(d.d_qty) as delv 
  FROM job_party_delv d 
   JOIN job_party p 
    on d.jp_id = p.id 
 where p.party_id = 9 
   and d.i_id = 1 
 GROUP 
    BY p.on_date) A GROUP BY on_date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...