powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема написания запроса
5 сообщений из 5, страница 1 из 1
Проблема написания запроса
    #32413079
LizaX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
существует таблица bills такого типа

/ Поля /

billnum INTEGER
payercode STRING
billlastpaydate DATETIME

/Данные/

|billnum|payercode|billlastpaydate
|---------------------------------------
|100001| 001001 |14.10.2002 17:00:42
|100002| 001001 |11.11.2002 16:10:15
|100003| 001001 |08.12.2002 17:15:42
|100004| 001002 |14.10.2002 17:00:42
|100005| 001002 |17.11.2002 14:30:42
|100006| 001002 | <null>
|100007| 001003 | <null>
|100008| 001003 | <null>
|100009| 001003 | <null>

Нужно создать запрос, который возвращает payercode для которого все billlastpaydate is not null.
В данном случае запрос должен вернуть '001001'.

Заранее благодарна за помощь.
...
Рейтинг: 0 / 0
Проблема написания запроса
    #32413101
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока на трезвую голову ещё соображаю:

Код: plaintext
1.
2.
3.
SELECT T1.payercode FROM MyTable T1
  WHERE NOT EXISTS(SELECT  1  FROM MyTable T2 
                      WHERE (T2.billlastpaydate IS NULL)
                        AND (T2.payercode = T1.payercode))


Можно сделать и по другому, через JOIN. Кому как нравится.
...
Рейтинг: 0 / 0
Проблема написания запроса
    #32413192
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
SELECT payercode FROM bills
GROUP BY payercode
HAVING COUNT(*)=COUNT(billlastpaydate)


>Мимопроходящий

Добавить еще дистинкт неплохо...:)
...
Рейтинг: 0 / 0
Проблема написания запроса
    #32413223
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnmenДобавить еще дистинкт неплохо...:)
Да, действительно
Не проснулся ещё.
Или DISTINCT , или FIRST 1 , или GROUP BY
...
Рейтинг: 0 / 0
Проблема написания запроса
    #32413249
LizaX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, огромное спасибо за помощь. Оба запроса возвращают одинаковое колличество строк (в первом с distinct). Хотя, предиканту EXISTS пришлось в три раза дольше потрудиться, т.к. набор данных в таблице огромен.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема написания запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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