2011-11-12 17 views
6

तो मैं निम्नलिखित SELECT स्टेटमेंट्स हैएक तालिका में अलग स्कीमा के साथ दो SELECT स्टेटमेंट्स से परिणाम "उत्पन्न" में शामिल होने

SELECT COUNT(A.Award) AS US, SUBSTRING(CAST(M.Year as char(4)), 0 , 4) AS Decade 
FROM Movies M, Awards A 
WHERE {SOME WHERE CLAUSE} 
GROUP BY Decade; 

और

SELECT COUNT(*) AS Total, SUBSTRING(CAST(A2.Year as char(4)), 0 , 4) AS Decade 
FROM Awards A2 
WHERE {SOME WHERE CLAUSE} 
GROUP BY Decade; 

पहले एक "पैदा" एक टेबल है कॉलम के साथ (यूएस, दशक) और दूसरा कॉलम के साथ एक और तालिका "उत्पन्न" कर रहा है (कुल, दशक)। मैं उन दो तालिकाओं में शामिल होना चाहता हूं ताकि मुझे एक टेबल मिल सके (यूएस, कुल, दशक)। मैं यह कैसे कर सकता हूं?

उत्तर

16

उन्हें सबक्वेरी में रखो और एक JOIN कार्य करें:

SELECT a.US, a.decade, b.total FROM 

    (SELECT COUNT(A.Award) AS US, SUBSTRING(CAST(M.Year as char(4)), 0 , 4) AS Decade 
    FROM Movies M, Awards A 
    WHERE {SOME WHERE CLAUSE} 
    GROUP BY Decade) AS a 

INNER JOIN 

    (SELECT COUNT(*) AS Total, SUBSTRING(CAST(A2.Year as char(4)), 0 , 4) AS Decade 
    FROM Awards A2 
    WHERE {SOME WHERE CLAUSE} 
    GROUP BY Decade) AS b 

ON a.decade = b.decade 
+1

बस एक छोटी समस्या: मैं '* बल्कि नहीं का चयन करेंगे' लेकिन 'चयन a.US, a.DECADE, b.TOTAL' ताकि आप जीता परिणाम में दो बार डेकडे नहीं मिलता है। – tobiasbayer

+0

@CodeBrickie: हाँ, धन्यवाद! – knittl

+0

यह एक आकर्षण की तरह काम करता है :) धन्यवाद! –

संबंधित मुद्दे