Замена нулевой информации, если совпадает идентификатор в операторе выбора - PullRequest
0 голосов
/ 02 июля 2019

Я вытягиваю из нескольких таблиц и имею три запроса на объединение.Я хочу, чтобы информация, находящаяся не в одной строке, была добавлена ​​в информацию из другой строки, при этом сохраняя отдельный список значений за месяц.

Для каждого идентификатора есть три строки, и, по сути, я хочу любую информацию, котораяне в строке, которую нужно скопировать из строки с совпадающим идентификатором, но при этом все три строки разделяются из-за некоторых сводных месячных данных, которые я хочу хранить отдельно для каждой строки.

Link shows what I want here

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Вы можете использовать следующий запрос:

SELECT
    T2.MAX_NAME,
    T2.MAX_ZIP,
    T2.MAX_TYPE,
    T1.ID,
    T1.TYP1,
    T1."201907",
    T1."201906",
    T1."201905"
FROM
    TAB T1
    JOIN (
        SELECT
            MAX(NAME) MAX_NAME,
            MAX(ZIP) MAX_ZIP,
            MAX(TYPE) MAX_TYPE,
            ID
        FROM
            TAB
        GROUP BY
            ID
    ) T2 ON ( T1.ID = T2.ID );

db <> fiddle demo

0 голосов
/ 02 июля 2019

Вы можете использовать аналитические функции:

select max(name) over (partition by id) as name,
       max(zip) over (partition by id) as zip,
       max(type1) over (partition by id) as type1,
       id, type, "201907", "201906", "201905"
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...