sql >> Databasteknik >  >> RDS >> Sqlserver

Två frågor i en resultattabell?

För att kombinera två frågor i en tabell behöver du UNION drift. Det kräver två resultatuppsättningar och limmar i princip ihop dem.
Union har få begränsningar, och det viktigaste är att det är nödvändigt att frågorna har samma antal kolumner.

I dina frågor har du olika antal kolumner valda, credit_card_master frågor har 5 kolumner vardera och PG_NetBanking_Charges frågor har 4 kolumner vardera.

Vad jag kan se antar jag att card_type kolumnen från den första frågan har ingen motsvarighet i den andra frågan, så du kan skriva om den andra frågan som:

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

Observera också att kolumnerna i resultatuppsättningen tar namnen på kolumnerna från den första frågan, så du kanske vill lägga till ett kolumnalias för att få ett mer meningsfullt/generiskt namn för kolumnen. Jag brukar också lägga till en kolumn "Källa" som gör att jag kan spåra ursprunget till raden i föreningen, så min slutliga fråga skulle se ut så här:

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

och resultatet kommer att ha kolumnerna Source , Name , Type , Ammount , AmmountType och PG_Type , där Source kommer att vara 1 för rader från den första och 2 för rader från den andra frågan.




  1. Databasstruktur/design

  2. Beställ Oracle-fråga efter SUMMA utan att välja SUMMA

  3. PostgreSQL-handledning för nybörjare – Allt du behöver veta om PostgreSQL

  4. Läsa tidsstämplar vid import av data i SQL Developer