我有一个表A和4列产品,变体,零件,订单。产品,变量可能具有相同的数据,但列顺序不同。我想从相同的产品,变体数据中找出订单值大于1的那些行。
Product Variant Part Order
------------------------------
ab vb a1 1
ab vb a2 1
ab vb a3 2a
ab vb a4 3
ab vb a5 4.1
像上面一样,我想要第一行和第二行作为结果,因为它们具有不同的Part,但是它们的顺序相同。
因此,我想搜索具有相同“产品”和“变体”的条目,并且将多个零件放在同一订单上,以便我可以管理此类情况下的订购。
答案 0 :(得分:2)
另一种选择是在这里使用存在逻辑:
SELECT Product, Variant, Part, [Order]
FROM tableA a1
WHERE EXISTS (SELECT 1 FROM tableA a2
WHERE a2.Product = a1.Product AND
a2.Variant = a1.Variant AND
a2.[Order] = a1.[Order] AND
a2.Part <> a1.Part);
答案 1 :(得分:0)
您可以GROUP BY
Product
,Variant
和Order
并检查count(distinct Part)
是否大于1
; with CTE as
(
SELECT Product, Variant, [Order]
FROM yourtable
GROUP BY Product, Variant, [Order]
HAVING COUNT(distinct Part) > 1
)
SELECT t.*
FROM CTE c
INNER JOIN yourtable t ON c.Product = t.Product
AND c.Variant = t.Variant
AND c.[Order] = t.[Order]
答案 2 :(得分:0)
您可以尝试
http://localhost:3110/