我有一個包含兩列的數據集,如下所示;查找所有元素共有的值
Prod Value
A 1
A 2
A 3
B 2
B 4
C 1
C 2
所以我想所有行的價值是共同的產品,所以在上面的例子中只有以下將返回。
A 2
B 2
C 2
無論是LINQ或SQL會很有幫助
感謝
我有一個包含兩列的數據集,如下所示;查找所有元素共有的值
Prod Value
A 1
A 2
A 3
B 2
B 4
C 1
C 2
所以我想所有行的價值是共同的產品,所以在上面的例子中只有以下將返回。
A 2
B 2
C 2
無論是LINQ或SQL會很有幫助
感謝
-- DROP TABLE #t2 UNCOMMENT WHEN TESTING...
CREATE TABLE #t2
(
Prod varchar(50),
Value int
)
INSERT INTO #t2 VALUES ('A', 1)
INSERT INTO #t2 VALUES ('A', 2)
INSERT INTO #t2 VALUES ('B', 2)
INSERT INTO #t2 VALUES ('B', 4)
INSERT INTO #t2 VALUES ('C', 2)
SELECT
DISTINCT
p1.Prod,
p2.Value
FROM
#t2 p1
INNER JOIN
#t2 p2
ON
p2.Value = p1.Value AND p1.Prod <> p2.Prod
這是一個基於SQL Server的解決方案:)。
您可以在數據集的第二列使用Intersect運算符。
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var commonNumbers = numbersA.Intersect(numbersB);
這裏是我來了,我想有一個更簡單的方法,但是,
var prodList = (from col in list select col["Prod"]).Distinct().ToList();
var valueList = from col in list
group col by col["Value"] into g
where g.Count() == prodList.Count()
select g.Key;
哪位能給我的一切我找
欣賞答覆的價值觀,你的建議通過督促分組,並使用相交找到匹配的值? – Dub 2010-03-02 16:06:44