Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从表中检索不同的行_Sql_Sql Server - Fatal编程技术网

Sql 从表中检索不同的行

Sql 从表中检索不同的行,sql,sql-server,Sql,Sql Server,我有一个table Masterproduct,我只想为每个“ProductDivisionID”检索一行,并检查特定“ProductDivisionID”的任何行的“StatusID”是否为2如果我正确阅读了您的问题,您需要一个productDivisionID值列表,用于任何行的StatusID为2的分区。在这种情况下,您可以在分区上使用聚合,并计算出现的次数: SELECT productDivisionID FROM Masterproduct GROUP BY productDivis


我有一个table Masterproduct,我只想为每个“ProductDivisionID”检索一行,并检查特定“ProductDivisionID”的任何行的“StatusID”是否为2如果我正确阅读了您的问题,您需要一个
productDivisionID
值列表,用于任何行的
StatusID
2
的分区。在这种情况下,您可以在分区上使用聚合,并计算出现的次数:

SELECT productDivisionID
FROM Masterproduct
GROUP BY productDivisionID
HAVING SUM(CASE WHEN StatusID = 2 THEN 1 ELSE 0 END) > 0
或者更简单,只需使用
WHERE
条件删除
StatusID
不是
2
的记录,然后
选择DISTINCT
即可获得分区列表:

SELECT DISTINCT productDivisionID
FROM Masterproduct
WHERE StatusID = 2

这将为每个productDivisionID提供列productID作为最大值和列StatusID作为2

SELECT productDivisionID, MAX(productID) as productID , MAX(StatusID) As StatusID
FROM Masterproduct
WHERE StatusID = 2
GROUP BY productDivisionID

如果您希望产品id也在选择中,那么您可以使用GROUP BY和聚合功能来满足它无法满足的需求,如果您发布输出数据,那么我可以适当地提出建议。