2012-09-27 11 views
5

मैं एक टेबल में घटनाएं ढूंढने में सक्षम होना चाहता हूं जहां एक कॉलम समान है लेकिन दूसरा अलग है।एसक्यूएल सर्वर क्वेरी का चयन करें एक कॉलम एक जैसा है और दूसरा अलग है

उदाहरण तालिका:

id team week 
1  1  1 
1  2  1 
2  2  1 
2  1  2 

मैं एक प्रश्न है कि सभी आईडी मिलेगा चाहते हैं, जहां टीम अलग है अभी तक सप्ताह अभी भी बहुत टीम की तरह कुछ नहीं बराबर टीम करता ही है, लेकिन सप्ताह बराबर सप्ताह करता है।

मूल रूप से मैं जानना चाहता हूं कि किसी भी आईडी ने उसी सप्ताह में टीमों को बदल दिया है, तो मैं यह कैसे कर सकता हूं?

+0

आपके उदाहरण डेटा के लिए वांछित परिणाम क्या हैं? –

+0

आईडी = 1, सप्ताह = 1 – kqlambert

+0

जैसे कुछ, यरोस्लाव की सलाह का पालन करें और हमेशा जो भी आपने कोशिश की है उसे पोस्ट करें। यदि आपने कुछ भी नहीं किया है, तो कुछ कोशिश करें! –

उत्तर

6
SELECT 
    t1.id, 
    t1.week 
FROM 
    YourTable t1 
    JOIN YourTable t2 
     ON t1.ID = t2.ID 
     AND t1.team < t2.team 
     AND t1.week = t2.week 
+0

धन्यवाद, तालिका में शामिल होने के लिए मेरे साथ कभी नहीं हुआ। – kqlambert

+0

@ रिचर्डकासेबेर्स्की अच्छा बिंदु ... जो दो बार लौटने से समान विसंगति को बनाए रखेगा; अपडेट किया गया। –

+0

@ मिक अच्छा लड़का, +1 :) – RichardTheKiwi

0
SELECT ID 
, COUNT(DISTINCT TEAM) AS CNT_TEAM 
, COUNT(DISTINCT WEEK) AS CNT_WEEK 
FROM TABLENAME 
GROUP BY ID 
HAVING COUNT(DISTINCT TEAM) > 1 
AND COUNT(DISTINCT WEEK) = 1 
0

इस तरह?

SELECT distinct id 
FROM TeamWeek 
GROUP BY id, week 
HAVING Count(team) > 1 
संबंधित मुद्दे