Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Hai truy vấn trong một bảng kết quả?

Để tổng hợp hai truy vấn trong một bảng, bạn cần có UNION hoạt động. Điều đó đòi hỏi hai tập hợp kết quả và về cơ bản kết hợp chúng lại với nhau.
Union có ít hạn chế và điều quan trọng nhất là các truy vấn cần có cùng số cột.

Trong các truy vấn, bạn đã chọn số lượng cột khác nhau, credit_card_master mỗi truy vấn có 5 cột và PG_NetBanking_Charges mỗi truy vấn có 4 cột.

Từ những gì tôi có thể thấy, tôi đoán rằng card_type từ truy vấn đầu tiên không có cột tương đương trong truy vấn thứ hai, vì vậy bạn có thể viết lại truy vấn thứ hai thành:

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

Cũng lưu ý rằng các cột trong tập kết quả sẽ lấy tên của các cột từ truy vấn đầu tiên, vì vậy bạn có thể muốn thêm bí danh cột để có được tên chung / có ý nghĩa hơn cho cột. Ngoài ra, tôi thường thêm cột "Nguồn" cho phép tôi theo dõi nguồn gốc của hàng trong liên hợp, vì vậy truy vấn cuối cùng của tôi sẽ giống như sau:

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

và kết quả sẽ có các cột Source , Name , Type , Ammount , AmmountTypePG_Type , nơi Source sẽ là 1 cho các hàng từ truy vấn đầu tiên và 2 cho các hàng từ truy vấn thứ hai.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C # ASP.Net:Ngoại lệ (chỉ một số lần) trong quá trình hoạt động cơ sở dữ liệu dài

  2. Mối quan hệ sql khóa chính tổng hợp

  3. CURRENT_TIMESTAMP Ví dụ trong SQL Server (T-SQL)

  4. Dấu thời gian trong T-Sql trong C # có nghĩa là gì?

  5. Mệnh đề ORDER BY không hợp lệ trong các dạng xem, hàm nội tuyến, bảng dẫn xuất, truy vấn con và biểu thức bảng thông thường