:: Не фоксом единым
Re: SQL Server Узнать существует ли хотя бы одна запись
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
LED
Подскажите как решить вот такую как бы можно сказать задачу...
...
Ищем наименьшую и наибольшую дату получения товара по его номеру
SELECT Min(dtp),Max(dtp) FROM _nfile WHERE okID=okID1
...
Как составить запрос?
1. НЕТ занчения ISNULL и потому от него невозможно избавиться. ЕСТЬ значение NULL и с нми просто надо научиться работать.
2.
SELECT Min(dtp),Max(dtp), count(*) FROM _nfile WHERE okID=okID1
Всегда вернет одну запись, по значению в третьем поле которой можно судить о наличии записей с таким товаром.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: SQL Server Узнать существует ли хотя бы одна запись
LED

Сообщений: 204
Дата регистрации: 22.07.2006
SELECT NVL(Min(dtp),0),NVL(Max(dtp),0) FROM _nfile WHERE okID=okID1

Не работает
Пишет Data type mismatch

Решил вот так:

If ISNULL(min_dtp)
RETURN
endif

Хотелось решить запросом

Спасибо всем кто участвовал в ТЕМЕ
Ratings: 0 negative/0 positive
Re: SQL Server Узнать существует ли хотя бы одна запись
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
LED
SELECT NVL(Min(dtp),0),NVL(Max(dtp),0) FROM _nfile WHERE okID=okID1

Не работает
Пишет Data type mismatch
Разумеется. Ибо ДАТА и ЧИСЛО - разные типы. На что и ругань.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: SQL Server Узнать существует ли хотя бы одна запись
LED

Сообщений: 204
Дата регистрации: 22.07.2006
SSA
Пока писал не увидел, что Вы уже дали ответ.
Я попробую. Наверно это разумно...
Ratings: 0 negative/0 positive
Re: SQL Server Узнать существует ли хотя бы одна запись
ВладимирС

Сообщений: 1693
Дата регистрации: 03.11.2005
Аспид
Человек синтаксис MS привел.
В фоксе NVL ...
Честно говоря думал, что вопросы по FoxPro в другом месте, да и заголовок меня смутил... SQL Server...
Извиняюсь...
Если dtp - это дата, то в NVL(Min(dtp),0) вместо 0 надо подставить создание нужной даты...
Ratings: 0 negative/0 positive
Re: SQL Server Узнать существует ли хотя бы одна запись
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
LED
Решил вот так:
If ISNULL(min_dtp)
RETURN
endif
Ну для фокса это вполне себе нормальный вариант. По логике работы агрегирующих функций в таком запросе ВСЕГДА будет одна запись. NULL в поле считаемом через min/max будет в двух случаях:
- под внешнее WHERE условие не попало ни одной записи.
- под внешнее условие попали записи, но в них всех соответствующее поле содержит NULL (NULL значения НЕ учитываются агрегирующими функциями).
LED
Хотелось решить запросом
Решить что? Что должен возвращать запрос в каждом из возможных случаев (нет записей по условию, есть запись но там поле даты содержит null, есть записи с заполненными датами)?
Вообще вполне себе можно добавить поле okID в выбираемые поля и в поле группировки, т.е. запрос типа
SELECT okID, Min(dtp) min_date, Max(dtp) max_date FROM _nfile WHERE okID=okID1 GROUP BY okID
Он в случае отсутствия записей с okID=okID1 просто вернёт 0 записей.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: SQL Server Узнать существует ли хотя бы одна запись
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
ВладимирС
Извиняюсь
Да не за что)))
Все относилось к ТС. Который пользует некропосты. И с подсказками работает... все до букв надо?


------------------
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 8 (Гостей: 8)

© 2000-2024 Fox Club 
Яндекс.Метрика