Postgres DISTINCT в одну строку

как ОТЛИЧИТЬ на одну строку

вот мой код:


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

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

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

Пожалуйста, не добавляйте изображения. Пожалуйста, добавьте свой результат и ожидаемый результат к вопросу в виде текста.

S-Man 12.12.2018 15:45

Пожалуйста, прикрепите вашу схему БД

Maxim 12.12.2018 16:55

StackOverflow благодарит вас за ваш вклад.

jchevali 12.12.2018 19:14
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
3
29
1

Ответы 1

Я полагаю, вы хотите, чтобы 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 
..

Невозможно использовать макс. Ретранслятор должен быть в Ирпорте

Marat Raim 12.12.2018 16:05

@MaratRaimberdievich: Но я не вижу, чтобы в вашем запросе всегда был только один ненулевой столбец на запрос

Kaushik Nayak 12.12.2018 16:11

Я пробовал, но репитер не работал. он всегда показывает только одну строку. Мне нужно повторить эти таблицы как одну строку и повторить для других записей. Ну, клиент хочет эти дерьмовые отчеты :(

Marat Raim 12.12.2018 19:20

Что ж, jasper iReport выполняет повторяющуюся часть. Я просто привожу строку, которая будет повторяться для других записей.

Marat Raim 12.12.2018 19:31

Другие вопросы по теме