SSMS
 sql >> Baza danych >  >> Database Tools >> SSMS

Wykonaj dołączenie na połączonych zapytaniach

Twoja obecna metoda nie jest zbyt wydajna. Inni zwykle użyją CASE WHEN aby to zrobić.

SELECT   t.uniqueID,
         IN_Info1 = MAX(case when t.type = 'IN' then t.information1 end),
         IN_Info2 = MAX(case when t.type = 'IN' then t.information2 end),
         IN_Notes = MAX(case when t.type = 'IN' then t.Notes end),
         OUT_Info1 = MAX(case when t.type = 'OUT' then t.information1 end),
         OUT_Info2 = MAX(case when t.type = 'OUT' then t.information2 end),
         OUT_Notes = MAX(case when t.type = 'OUT' then t.Notes end)
FROM     TABLEB t
GROUP BY t.uniqueID

a następnie, aby uwzględnić w swoim dużym zapytaniu, możesz użyć CTE lub DERIVED TABLE

-- CTE
; with Tblb as
(
  SELECT   t.uniqueID,
           IN_Info1 = MAX(case when t.type = 'IN' then t.information1 end),
           IN_Info2 = MAX(case when t.type = 'IN' then t.information2 end),
           IN_Notes = MAX(case when t.type = 'IN' then t.Notes end),
           OUT_Info1 = MAX(case when t.type = 'OUT' then t.information1 end),  
           OUT_Info2 = MAX(case when t.type = 'OUT' then t.information2 end),  
           OUT_Notes = MAX(case when t.type = 'OUT' then t.Notes end)
  FROM     TABLEB t
  GROUP BY t.uniqueID
)
select   *
from     TableA a
         inner join Tblb b ON a.uniqueID = b.uniqueID

Nie możesz tego zrobić X1.t1.uniqueID. , powinien to być tylko X1.uniqueID




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Jak określić efektywne uprawnienia dla użytkownika bazy danych SQL Server za pomocą C#?

  2. Jak skryptować sortowanie niedomyślne i pomijać jawne skrypty dla sortowania domyślnego?

  3. Jak poprawić błąd składni programu SQL Server w ustawieniu ograniczeń FK?

  4. SQL LocalDB - Nie można usunąć bazy danych, gdy jej pliki są usuwane

  5. Jak napisać sparametryzowane zapytanie w studiu zarządzania?