Как удалить строку на основе условий столбца.? - PullRequest
0 голосов
/ 31 марта 2020

Как удалить обе записи из результата, если guest_id одинаковы, а fee_status различны.

dataset

Это то, что Я пытался до сих пор ...

SELECT *
FROM (
    SELECT g.guest_id,'Apr2020' as fee_month, 'Pending' as fee_status
    FROM .guest g
        LET JOIN managment.hostel_detail h
             ON g.h_id = h.h_id
    WHERE h.h_id = 3
    UNION ALL
    SELECT  g.guest_id,f.fee_month,f.fee_status as fee_status
    FROM managment.guest g
        LEFT JOIN managment.fee f
            ON g.guest_id = f.guest_id
        LEFT JOIN managment.h_detail h
            ON g.h_id = h.h_id
    WHERE f.fee_status = 'Submitted'
        AND f.fee_month = 'Apr2020'
        AND h.h_id = 3
) main;

1 Ответ

1 голос
/ 31 марта 2020

Для ваших примеров данных, как показано на скриншоте, вы можете использовать aggregation с предложением having, чтобы выбрать только те строки, у которых нет экземпляров дублированных fee_month и fee_status. Если fee_month не имеет значения, вы можете удалить его из select и group by.

select max(guest_id), fee_month, fee_status
from your_screenshot_table
group by fee_month, fee_status
having count(*)=1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...