Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server 如何选择所有状态均为零的记录?_Sql Server_Sql Server 2008_Sql Server 2005_Sql Server 2000 - Fatal编程技术网

Sql server 如何选择所有状态均为零的记录?

Sql server 如何选择所有状态均为零的记录?,sql-server,sql-server-2008,sql-server-2005,sql-server-2000,Sql Server,Sql Server 2008,Sql Server 2005,Sql Server 2000,假设我有下列表格 Person表和personStatus表 现在我想找到所有状态都为零的个人ID 结果是-->10 怎么做 SELECT id FROM @PersonStatus GROUP BY ID HAVING COUNT(DISTINCT statuss) = 1 AND MAX(statuss) = 0 或 因为我假设@Persons表不仅仅有一个PersonId列,您可能还需要其他列,所以我认为@Persons需要成为查询的一部分 SELECT p

假设我有下列表格 Person表和personStatus表

现在我想找到所有状态都为零的个人ID 结果是-->10

怎么做

SELECT  id
FROM    @PersonStatus
GROUP   BY ID
HAVING  COUNT(DISTINCT statuss) = 1 AND
        MAX(statuss) = 0

因为我假设@Persons表不仅仅有一个PersonId列,您可能还需要其他列,所以我认为@Persons需要成为查询的一部分

SELECT p.PersonId --, other columns from p
 FROM @Persons AS p
 WHERE EXISTS (SELECT id FROM @PersonStatus
   WHERE id = p.PersonId
   GROUP BY id HAVING MAX(statuss) = 0);

是否要返回子表中没有行的人员?否这不是我的场景是否只返回其所有状态为零的人员?
SELECT  id
FROM    @PersonStatus
GROUP   BY ID
HAVING  MAX(statuss) = MIN(statuss) AND
        MAX(statuss) = 0
select distinct p.id from @PersonStatus as p
where Statuss = 0
and not exists (select null from @Personstatus as t
                where p.id = t.id and t.statuss <> 0)
SELECT p.PersonId --, other columns from p
 FROM @Persons AS p
 WHERE EXISTS (SELECT id FROM @PersonStatus
   WHERE id = p.PersonId
   GROUP BY id HAVING MAX(statuss) = 0);