Postgres DISTINCT в один ряд - PullRequest
       3

Postgres DISTINCT в один ряд

0 голосов
/ 12 декабря 2018

как отличить одну строку

вот мой код:


SELECT 
wagon.name w_name,
'' as su_name,
'' as m_name,
'' as sk_name,
'' as p_name,
'' as b_name,
'' as o_name,
total w_total,
0 as su_total,
0 as m_total,
0 as sk_total,
0 as p_total,
0 as b_total,
0 as o_total

FROM wagoning 
LEFT JOIN wagon ON wagoning.wagon_id = wagon.id 

UNION ALL

SELECT 

'' w_name,
name su_name,
'' m_name,
'' sk_name,
'' p_name,
'' b_name,
'' o_name,
0 w_total,
total su_total,
0 m_total,
0 sk_total,
0 p_total,
0 b_total,
0 o_total

FROM drying 
LEFT JOIN drier ON drying.drier_id = drier.id 

UNION ALL

SELECT 

'' w_name,
'' su_name,
quantity::varchar as m_name,
'' sk_name,
'' p_name,
'' b_name,
'' o_name,
0 w_total,
0 su_total,
total m_total,
0 sk_total,
0 p_total,
0 b_total,
0 o_total

FROM
bagging

UNION ALL

SELECT 

'' w_name,
'' su_name,
'' m_name,
quantity::varchar as sk_name,
'' p_name,
'' b_name,
'' o_name,
0 w_total,
0 su_total,
0 m_total,
total sk_total,
0 p_total,
0 b_total,
0 o_total


FROM
storing

UNION ALL

SELECT 

'' w_name,
'' su_name,
'' m_name,
'' sk_name,
quantity::varchar as p_name,
'' b_name,
'' o_name,
0 w_total,
0 su_total,
0 m_total,
0 sk_total,
total p_total,
0 b_total,
0 o_total

FROM
processing

UNION ALL

SELECT 

'' w_name,
'' su_name,
'' m_name,
'' sk_name,
'' p_name,
quantity::varchar as b_name,
'' o_name,
0 w_total,
0 su_total,
0 m_total,
0 sk_total,
0 p_total,
quantity * net b_total,
0 o_total

FROM
boxing

UNION ALL

SELECT 

'' w_name,
'' su_name,
'' m_name,
'' sk_name,
'' p_name,
'' b_name,
'' o_name,
0 w_total,
0 su_total,
0 m_total,
0 sk_total,
0 p_total,
0 b_total,
part o_total

FROM
boxing

Пожалуйста, проверьте скриншот ниже: верхний результат (над красным), как он работает сейчас.То, что я хочу, находится ниже красной линии, как в одной строке

снимок экрана

1 Ответ

0 голосов
/ 12 декабря 2018

Полагаю, вы хотите MAX поверх результата запроса всех UNION ALL

select MAX(w_name) as w_name,
       MAX(su_name)as su_name,
      -- ..  other columns

FROM
(
SELECT 
wagon.name w_name,
'' as su_name,
'' as m_name,
'' as sk_name,
'' as p_name,
'' as b_name,
'' as o_name,
total w_total,
0 as su_total,
0 as m_total,
0 as sk_total,
0 as p_total,
0 as b_total,
0 as o_total

FROM wagoning 
LEFT JOIN wagon ON wagoning.wagon_id = wagon.id 

UNION ALL

SELECT 
..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...