अपने नव उपलब्ध कराए गए आंकड़ों का उपयोग करने अपडेट किया गया:
समाधान मूल डेटा का उपयोग कर इस जवाब के अंत में पाया जा सकता है।
अपने नए डेटा का उपयोग करना:
DECLARE @T TABLE([contract] INT, project INT, activity INT)
INSERT INTO @T VALUES(1000, 8000, 10)
INSERT INTO @T VALUES(1000, 8000, 20)
INSERT INTO @T VALUES(1000, 8001, 10)
INSERT INTO @T VALUES(2000, 9000, 49)
INSERT INTO @T VALUES(2000, 9001, 49)
INSERT INTO @T VALUES(3000, 9000, 79)
INSERT INTO @T VALUES(3000, 9000, 78)
SELECT DISTINCT [contract], activity FROM @T AS A WHERE
(SELECT COUNT(DISTINCT activity)
FROM @T AS B WHERE B.[contract] = A.[contract]) = 1
रिटर्न: 2000, 49
समाधान मूल डेटा का उपयोग कर
चेतावनी: निम्न समाधानों डेटा पहले में दिए गए का उपयोग करें सवाल और वर्तमान प्रश्न के लिए समझ में नहीं आता है। मैंने उन्हें केवल पूर्णता के लिए संलग्न किया है।
SELECT Col1, Count(col1) AS count FROM table
GROUP BY col1
HAVING count > 1
यह आपको लगता है कि अलग नहीं हैं col1 में सभी मानों की सूची मिलना चाहिए। आप इसे एक टेबल var या temp तालिका में रख सकते हैं और इसके खिलाफ शामिल हो सकते हैं।
DECLARE @t TABLE(col1 VARCHAR(1), col2 VARCHAR(1), col3 VARCHAR(1))
INSERT INTO @t VALUES('A', 'B', 'C');
INSERT INTO @t VALUES('D', 'E', 'F');
INSERT INTO @t VALUES('A', 'J', 'K');
INSERT INTO @t VALUES('G', 'H', 'H');
SELECT * FROM @t
SELECT col1, col2 FROM @t WHERE col1 NOT IN
(SELECT col1 FROM @t AS t GROUP BY col1 HAVING COUNT(col1) > 1)
यह रिटर्न:
D E
G H
और किसी अन्य विधि है कि उपयोगकर्ताओं को एक अस्थायी मेज और शामिल हो:
DECLARE @t TABLE(col1 VARCHAR(1), col2 VARCHAR(1), col3 VARCHAR(1))
INSERT INTO @t VALUES('A', 'B', 'C');
INSERT INTO @t VALUES('D', 'E', 'F');
INSERT INTO @t VALUES('A', 'J', 'K');
INSERT INTO @t VALUES('G', 'H', 'H');
SELECT * FROM @t
DROP TABLE #temp_table
SELECT col1 INTO #temp_table
FROM @t AS t GROUP BY col1 HAVING COUNT(col1) = 1
SELECT t.col1, t.col2 FROM @t AS t
INNER JOIN #temp_table AS tt ON t.col1 = tt.col1
इसके अलावा
यहाँ एक उप क्वेरी का उपयोग कर एक उदाहरण है रिटर्न:
D E
G H
इस तालिका के लिए पीके क्या है? –