Mcbaloo Ответов: 1

Как вернуть true (1) или false (0), если записи определенного столбца совпадают в базе данных


у меня есть стол, который выглядит так


CodeID                   Status
         
         FO1                      FREE
         
         FO2                      NOT FREE
        
         FO1                      FREE
        
         FO1                      FREE
        
         FO1                      FREE

Чего я хочу добиться, так это проверить, есть ли в вышеприведенном выше все FO1 имеют статус Free. Если свободны, то хочу осуществить и действие. Я использую asp.net веб-форма для заявки по пути. Пожалуйста, помогите мне с тем, как структурировать мой запрос, чтобы иметь возможность определить, совпадают ли все мои записи для определенного значения

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

select count(distinct Status) from TableName where CodeID = 'FO2' and Status ='FREE'



Я тестирую этот запрос в SQL server просто для того, чтобы убедиться, что то, что я делаю, правильно. Вышеприведенный запрос возвращает 1, но если я изменю один из FO1 на NOT FREE, вышеприведенный код stills вернет 1. Я хочу, чтобы он вернулся.

1 Ответов

Рейтинг:
10

OriginalGriff

Я бы сделал это так, чтобы использовать GROUP BY:

SELECT COUNT(Status) FROM TableName GROUP BY CodeID, Status HAVING CodeID = 'F01' AND Status != 'FREE'
Значение 0 указывает на то, что все F01 свободны (или нет кодов F01), любое другое число является несвободным F01.