powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужна помощь с подзапросом
5 сообщений из 5, страница 1 из 1
Нужна помощь с подзапросом
    #39934469
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Мне необходимо вывести дома, которые имеют только записи со статусами 0 (исторические записи). Таких записей у одного дома может быть несколько и только одна запись со статусом либо 1, либо 2, либо 3.
Например:
Вариант 1.
1. дом 1 статус 0
2. дом 1 статус 0
3. дом 1 статус 1

Вариант 2.
1. дом 2 статус 0
2. дом 2 статус 2

Вариант 3.
1. дом 3 статус 0
2. дом 3 статус 0
3. дом 3 статус 0

В запросе должны выдаваться только такие дома как в варианте 3. Строк с нулевыми статусами может быть и одна, и две, и три, и тд.

Попробовала вот так:
select * from house h
where
h.orponid in
(select orponid from house where livestatus = 0 and livestatus not in (1,2,3)
)

Но выдает почти все подряд. Пока вообще плохо с sql, только разбираюсь. Подскажите, пожалуйста, где ошибка.
...
Рейтинг: 0 / 0
Нужна помощь с подзапросом
    #39934477
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Ann*,

Ищите там, где max(livestatus) = 0
...
Рейтинг: 0 / 0
Нужна помощь с подзапросом
    #39934483
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если написать вот так, то тоже неправильно выдается результат:
select * from house h
where
h.orponid in
(select orponid from house where livestatus = 0 and livestatus not in (1,2,3)
group by orponid
having max(livestatus) = 0)
...
Рейтинг: 0 / 0
Нужна помощь с подзапросом
    #39934547
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
select orponid from house group by orponid having max(livestatus) = 0


А так?
...
Рейтинг: 0 / 0
Нужна помощь с подзапросом
    #39934556
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, вот так заработало:

where 1 = 1
and h.orponid in
(select orponid from house
group by orponid
having max(livestatus) = 0
)

Спасибо за помощь!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужна помощь с подзапросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]