Aby połączyć dwa zapytania w jednej tabeli, potrzebujesz UNION
operacja. To wymaga dwóch zestawów wyników i zasadniczo je skleja.
Unii ma niewiele ograniczeń, a najważniejsze jest to, że zapytania muszą mieć taką samą liczbę kolumn.
W zapytaniach masz wybraną inną liczbę kolumn, credit_card_master
zapytania mają po 5 kolumn, a PG_NetBanking_Charges
zapytania mają po 4 kolumny.
Z tego co widzę, domyślam się, że card_type
kolumna z pierwszego zapytania nie ma odpowiednika w drugim zapytaniu, więc możesz przepisać drugie zapytanie jako:
SELECT card_name, card_type, charge_amount, B2C_Amount_type, PGM.PG_Type
FROM ...
WHERE ...
UNION
SELECT PGM.Payment_Gateway_Name, null, PGNBC.Online_DC_Charge_Amt,
PGNBC.Online_DC_Charge_type, PGM.PG_Type
FROM ...
WHERE ...
Należy również zauważyć, że kolumny w zestawie wyników przyjmą nazwy kolumn z pierwszego zapytania, więc warto dodać alias kolumny, aby uzyskać bardziej znaczącą / ogólną nazwę kolumny. Zwykle dodaję też kolumnę „Źródło”, która umożliwia mi prześledzenie pochodzenia wiersza w unii, więc moje ostateczne zapytanie wyglądałoby tak:
SELECT 1 as Source, card_name as Name, card_type as Type,
charge_amount as Ammount, B2C_Amount_type as AmmountType,
PGM.PG_Type as PG_Type
FROM ...
WHERE ...
UNION
SELECT 2, PGM.Payment_Gateway_Name, null, PGNBC.Online_DC_Charge_Amt,
PGNBC.Online_DC_Charge_type, PGM.PG_Type
FROM ...
WHERE ...
a wynik będzie miał kolumny Source
, Name
, Type
, Ammount
, AmmountType
i PG_Type
, gdzie Source
będzie 1 dla wierszy z pierwszego i 2 dla wierszy z drugiego zapytania.