Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dua kueri dalam tabel hasil tunggal?

Untuk menggabungkan dua kueri dalam satu tabel, Anda memerlukan UNION operasi. Itu membutuhkan dua set hasil, dan pada dasarnya merekatkan keduanya.
Union memiliki sedikit batasan, dan yang paling penting adalah kueri harus memiliki jumlah kolom yang sama.

Dalam kueri Anda, Anda memiliki jumlah kolom yang berbeda yang dipilih, credit_card_master kueri memiliki 5 kolom masing-masing, dan PG_NetBanking_Charges kueri memiliki 4 kolom masing-masing.

Dari apa yang saya lihat, saya kira itu card_type kolom dari kueri pertama tidak memiliki padanan di kueri kedua, jadi Anda dapat menulis ulang kueri kedua sebagai:

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

Perhatikan juga bahwa kolom dalam kumpulan hasil akan mengambil nama kolom dari kueri pertama, jadi Anda mungkin ingin menambahkan alias kolom untuk mendapatkan nama kolom yang lebih bermakna/umum. Saya juga biasanya menambahkan kolom "Sumber" yang memungkinkan saya melacak asal baris dalam gabungan, sehingga kueri terakhir saya akan terlihat seperti:

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

dan hasilnya akan memiliki kolom Source , Name , Type , Ammount , AmmountType dan PG_Type , di mana Source akan menjadi 1 untuk baris dari kueri pertama, dan 2 untuk baris dari kueri kedua.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menanyakan akun Active Directory mana yang dikaitkan dengan pengguna SQL Server?

  2. SQL Server 2008 Express CONCAT() tidak ada?

  3. Apa yang setara dengan Oracle dari fungsi IsNull() SQL Server?

  4. Bagaimana cara mengubah nilai kunci utama dan memperbarui kunci asing secara bersamaan

  5. bisakah kita memiliki kunci asing yang bukan kunci utama di tabel lain?