Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dwa zapytania w jednej tabeli wyników?

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj XML na tabelę w SQL Server 2005

  2. Wybierz pierwsze 3 wiersze każdej tabeli w bazie danych

  3. Jak znaleźć kolejne wiersze na podstawie wartości kolumny?

  4. Jak mogę przeszukać wszystkie kolumny w tabeli?

  5. Jak używać SqlTransaction w C#