Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
-
Dmitriy Solomnikov
-
- Постоялец

-
-
- Сообщения: 407
- Зарегистрирован: 10.11.2004 (Ср) 13:04
- Откуда: Москва
-
Dmitriy Solomnikov » 24.07.2006 (Пн) 15:58
не работает запрос
SELECT CASE MAX(Код_контрагента) WHEN null then 0 else MAX(Код_контрагента) END FROM Контрагенты
Все время выдает NULL, хотя в базе нет никаких записей и должен выдавать 0, при условии, что просто
SELECT MAX(Код_контрагента) FROM Контрагенты
выдает NULL.
-
Dmitriy Solomnikov
-
- Постоялец

-
-
- Сообщения: 407
- Зарегистрирован: 10.11.2004 (Ср) 13:04
- Откуда: Москва
-
Dmitriy Solomnikov » 24.07.2006 (Пн) 16:45
с одной проблемой разобрались, появилась другая:
INSERT INTO Контрагенты(Код_контрагента) VALUES(SELECT COALESCE(MAX([Код_контрагента]),0) FROM Контрагенты)
выдает:
Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'SELECT'.
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ')'.
-
Dmitriy Solomnikov
-
- Постоялец

-
-
- Сообщения: 407
- Зарегистрирован: 10.11.2004 (Ср) 13:04
- Откуда: Москва
-
Dmitriy Solomnikov » 24.07.2006 (Пн) 17:50
INSERT INTO Контрагенты(Код_контрагента, Дата_начала_действия, Дата_конца_действия)
(select (SELECT COALESCE(MAX([Код_контрагента]),0) FROM Контрагенты), '12.12.1982','12.21.1982')
-
Ennor
-
- Конструктивный критик

-
-
- Сообщения: 2504
- Зарегистрирован: 18.12.2001 (Вт) 3:58
- Откуда: Калуга -> Москва
-
Ennor » 24.07.2006 (Пн) 18:43
- Код: Выделить всё
INSERT INTO Контрагенты ([Код_контрагента])
SELECT ISNULL(MAX([Код_контрагента]), 0) FROM Контрагенты
В случае одного аргумента COALESCE() вырождается в ISNULL(), а в случае использования конструкции Insert into ... Select добавлять VALUES настоятельно не рекомендуется - лишний уровень скобок приводит только к путанице.
Вернуться в Базы данных
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1