Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Две заявки в една таблица с резултати?

За да комбинирате две заявки в една таблица, имате нужда от UNION операция. Това отнема два набора резултати и основно ги свързва.
Union има малко ограничения и най-важното е, че е необходимо заявките да имат еднакъв брой колони.

Във вашите заявки имате различен брой избрани колони, credit_card_master заявките имат 5 колони всяка, а PG_NetBanking_Charges заявките имат по 4 колони всяка.

От това, което виждам, предполагам, че card_type колона от първата заявка няма еквивалент във втората заявка, така че можете да пренапишете втората заявка като:

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

Също така имайте предвид, че колоните в набора с резултати ще вземат имената на колоните от първата заявка, така че може да искате да добавите псевдоним на колона, за да получите по-смислено/генерично име за колоната. Освен това обикновено добавям колона „Източник“, която ми позволява да проследя произхода на реда в обединението, така че крайната ми заявка ще изглежда така:

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

и резултатът ще има колони Source , Name , Type , Ammount , AmmountType и PG_Type , където Source ще бъде 1 за редове от първата и 2 за редове от втората заявка.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Можете ли да зададете съхранена процедура винаги да се изпълнява като конкретен потребител?

  2. Как да експортирате utf-8 данни от sql сървър 2008 в excel

  3. Дефинирайте стъпките за курсора на SQL Server - SQL Server / TSQL урок

  4. Искате да получите списък на всички младши лекари, работещи под старши лекар и обратно?

  5. SQL Server 2000:Идеи за извършване на подзаявка за агрегиране на конкатенация