sql >> Database >  >> RDS >> Sqlserver

Twee query's in een enkele resultaattabel?

Om twee query's in één tabel te combineren, hebt u de UNION nodig operatie. Daarvoor zijn twee resultatensets nodig, die in feite aan elkaar worden gelijmd.
Union heeft weinig beperkingen, en het belangrijkste is dat de query's hetzelfde aantal kolommen moeten hebben.

In uw zoekopdrachten heeft u een ander aantal kolommen geselecteerd, de credit_card_master zoekopdrachten hebben elk 5 kolommen en de PG_NetBanking_Charges query's hebben elk 4 kolommen.

Van wat ik kan zien, denk ik dat de card_type kolom van de eerste zoekopdracht heeft geen equivalent in de tweede zoekopdracht, dus je zou de tweede zoekopdracht kunnen herschrijven als:

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 ...

Houd er ook rekening mee dat de kolommen in de resultatenset de namen van de kolommen uit de eerste query zullen aannemen, dus misschien wilt u een kolomalias toevoegen om een ​​meer betekenisvolle / algemene naam voor de kolom te krijgen. Ik voeg meestal ook een kolom "Bron" toe waarmee ik de oorsprong van de rij in de unie kan traceren, dus mijn laatste vraag zou er als volgt uitzien:

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 ...

en het resultaat heeft de kolommen Source , Name , Type , Ammount , AmmountType en PG_Type , waar Source is 1 voor rijen vanaf de eerste en 2 voor rijen vanaf de tweede zoekopdracht.




  1. Controleer op referentiële integriteitsbreuk

  2. Hoe ODBC-database-invoer te zuiveren?

  3. SQL-triggerfunctie om dagelijks voortschrijdend gemiddelde BIJWERKEN bij INSERT

  4. Een externe dump herstellen naar RDS