sql >> Database >  >> RDS >> Sqlserver

Hulp bij SQL-query - Meerdere kolommen samenvoegen op basis van voorwaarde

Je zou het ongeveer als volgt kunnen doen (niet getest):

select 
  t.Buyer, 
  t.Seller, 
  case when t.Buyer like 'B%' THEN (select BookName from Book where BookId = t.Buyer)
                              ELSE (select CpName from Counterparty where CPId = t.Buyer)
  end BuyerName,
  case when t.Buyer like 'B%' THEN (select DeskName from Desk where BookId = t.Buyer)
                              ELSE NULL
  end BuyerDeskName,
  case when t.Seller like 'B%' THEN (select BookName from Book where BookId = t.Seller)
                               ELSE (select CpName from Counterparty where CPId = t.Seller)
  end SellerName,
  case when t.Seller like 'B%' THEN (select DeskName from Desk where BookId = t.Seller)
                               ELSE NULL
  end SellerDeskName,
from 
  Trade t

Het probleem dat je hebt is dat, aangezien de tabel waaraan je wilt deelnemen datagestuurd is, je deze niet kunt specificeren in de FROM-component.



  1. MySQL DATE_ADD gebruik, 5 dagen interval

  2. aioMySQL maakt geen verbinding met python

  3. Hoe de decimalen van een getal tot een minimum uit te breiden in Oracle PLSQL?

  4. Postgresql:Query die onjuiste gegevens retourneert