Ke sloučení dvou dotazů do jedné tabulky potřebujete UNION
úkon. To vyžaduje dvě sady výsledků a v podstatě je slepí dohromady.
Union má několik omezení a nejdůležitější je, že je nutné, aby dotazy měly stejný počet sloupců.
Ve vašich dotazech máte vybraný jiný počet sloupců, credit_card_master
každý dotaz má 5 sloupců a PG_NetBanking_Charges
každý dotaz má 4 sloupce.
Z toho, co vidím, předpokládám, že card_type
sloupec z prvního dotazu nemá ekvivalent ve druhém dotazu, takže druhý dotaz můžete přepsat 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 ...
Všimněte si také, že sloupce v sadě výsledků převezmou názvy sloupců z prvního dotazu, takže možná budete chtít přidat alias sloupce, abyste získali smysluplnější / obecnější název sloupce. Obvykle také přidávám sloupec "Zdroj", který mi umožňuje sledovat původ řádku ve sjednocení, takže můj konečný dotaz bude vypadat takto:
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 výsledek bude mít sloupce Source
, Name
, Type
, Ammount
, AmmountType
a PG_Type
, kde Source
bude 1 pro řádky z prvního a 2 pro řádky z druhého dotazu.