Чтобы объединить два запроса в одну таблицу, вам нужна операция UNION . Это берет два набора результатов и в основном склеивает их вместе.
У Union мало ограничений, и самое важное - это то, чтобы в запросах было одинаковое количество столбцов.
В ваших запросах у вас выбрано различное количество столбцов, у запросов credit_card_master
по 5 столбцов, а у запросов PG_NetBanking_Charges
по 4 столбца.
Из того, что я вижу, я думаю, что столбец card_type
из первого запроса не имеет эквивалента во втором запросе, поэтому вы можете переписать второй запрос как:
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 ...
Также обратите внимание, что столбцы в наборе результатов будут принимать имена столбцов из первого запроса, поэтому вы можете добавить псевдоним столбца, чтобы получить более осмысленное / общее имя для столбца. Кроме того, я обычно добавляю столбец «Источник», который позволяет мне отслеживать происхождение строки в объединении, поэтому мой окончательный запрос будет выглядеть так:
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 ...
, и результат будет иметь столбцы Source
, Name
, Type
, Ammount
, AmmountType
и PG_Type
, где Source
будет 1 для строк первого и 2 для строки из второго запроса.