Member 12926744 Ответов: 3

Как проверить, что все значения в столбце одинаковы


Привет всем, я новичок в Sql .Может ли кто-нибудь помочь мне в нижеследующей проблеме?
Мне нужно выбрать Batchno, у которого все значение поля статуса "закончено", если какое-либо значение поля статуса "ожидает" против Batchno, оно не должно быть выбрано.Любая помощь будет оценена по достоинству.

BatchNo  SID   Status 
2101     123    Finished
2101     457    Pending
2101     478    Finished
2101     8745   Finished
2102     4574   Finished
2102     4578   Finished
2102     4789   Finished
2103     6214   Finished
2103     4236   Pending
2103     7895   Pending                       


Выход должен быть "2102"

Что я уже пробовал:

Выберите Batchno из продукта, где Status= 'Finished' GROUP BY(Batchno) - это выбирает все batchno, статус которых также находится в ожидании.

Michael_Davies

Пожалуйста, покажите результаты SQL, например, 2101 закончил и ожидает, так что покажет.

3 Ответов

Рейтинг:
9

sunithaNag

выберите BatchNo из [UDB_JAX]. [dbo].[тест] как x
где Бачно не в
(выберите BatchNo из [UDB_JAX]. [dbo].[тест] где BatchNo= x. BatchNo и Status ! = 'готово' )
группа по BatchNo


Рейтинг:
22

CodeWraith

Попробовать это:

select distinct BatchNo from TABLE as x
where 
((select count(*) Status from TABLE where BatchNo = x.BatchNo) = 
(select count(*) Status from TABLE where BatchNo= x.BatchNo and Status = x.Status ))


Рейтинг:
20

Atlapure Ambrish

Ниже приведен запрос..

select distinct BatchNo from groupdata
where BatchNo not in (select BatchNo from groupdata where status = 'Pending')