आपकी वर्तमान विधि बहुत कुशल नहीं है। अन्य आमतौर पर CASE WHEN
. का उपयोग करेंगे करने के लिए।
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
और फिर अपनी बड़ी क्वेरी में शामिल करने के लिए, आप या तो सीटीई या व्युत्पन्न तालिका का उपयोग कर सकते हैं
-- 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
आप यह नहीं कर सकते X1.t1.uniqueID.
, यह केवल X1.uniqueID
. होना चाहिए