SQL:如何针对参数选择具有相同ID的多个行

时间:2012-12-29 08:59:39

标签: sql

我有一个Invoice表,其中包含以下列:

InvoiceID, ProductID, Qty, Sum, Location, etc

主键是InvoiceID + ProductID

单个Invoice可以有多个行,因此单个发票将如下所示:

InvoiceID | ProductID | Qty | Sum   | Location
----------------------------------------------
1000      | 123       | 2   | 20.00 | Loc1
1000      | 321       | 4   | 12.00 | Loc1
1000      | 145       | 1   | 03.50 | Loc1
1000      | 134       | 1   | 10.00 | Loc1
1001      | 123       | 1   | 20.00 | Loc1
1002      | 321       | 1   | 03.50 | Loc1
1002      | 145       | 1   | 10.00 | Loc1
1002      | 134       | 1   | 20.00 | Loc1

所以我想做的是写一个SQL语句来排除所有不同的InvoiceID

所以结果将是

1000,1001,1002

2 个答案:

答案 0 :(得分:3)

SELECT 
  DISTINCT InvoiceID 
FROM 
  Invoice 
WHERE ProductID=123

答案 1 :(得分:2)

如果您想要排除所有不同的InvoiceID,请尝试使用

select InvoiceID from Invoice 
where ProductID=123
group by InvoiceID having count(InvoiceID) > 1