आपको दो चीजों में से एक करने की आवश्यकता है (और ये दोनों मानते हैं कि Table0
num
. के सभी उदाहरण हैं ) -
-
यदि सभी पंक्तियों को पहले से ही 'पत्ती' तालिका (1 - 4) के लिए जोड़ दिया गया है, तो एक साधारण
LEFT JOIN
(COALESCE()
. के साथ चयन में) पर्याप्त होगा - आपकोGROUP BY
की भी आवश्यकता नहीं है . -
यदि आपको पंक्तियों का सारांश चाहिए, तो आपको उन्हें पहले . जोड़ना होगा शामिल हों, यह देखते हुए कि अन्यथा अलग-अलग तालिकाओं में प्रति संख्या एकाधिक पंक्तियाँ परिणामों को गुणा . करने का कारण बनेंगी .
कुछ इस तरह:
SELECT Table0.num, COALESCE(Table1.qty, 0), COALESCE(Table2.qty, 0),
COALESCE(Table3.qty, 0), COALESCE(Table4.qty, 0)
FROM Table0
LEFT JOIN (SELECT num, SUM(qty1) as qty
FROM Table1
GROUP BY num) Table1
ON Table1.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty2) as qty
FROM Table2
GROUP BY num) Table2
ON Table2.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty3) as qty
FROM Table3
GROUP BY num) Table3
ON Table3.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty4) as qty
FROM Table4
GROUP BY num) Table4
ON Table4.num = Table0.num
(काम कर रहा SQLFiddle उदाहरण )