Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> NVL в Firebird 1.5.2, Работает? 
:(
    Опции темы
StayAtHome
Дата 5.4.2005, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



Как правильно использовать NVL-функции в Firebird 1.5.2? Там есть DNvl, INvl и т. д.
Запрос
Код
SELECT Orders.Id,
       Orders.CustomerId, Orders.StateId, Orders.SaleDate,
      DNVL((select Sum(Sales.SalePrice) from Sales where Sales.OrderId=Orders.Id),0),
      Orders.Username, Orders.Comment
FROM Orders
возвращает одни нули вместо сумм. Если писать не DNVL а INVL -- все работает, но суммы округляются к целому.
Поле Sales.SalePrice описано как
Код
 SALEPRICE DECIMAL(15,2) DEFAULT 0 NOT NULL CHECK (Value>=0) 

PM MAIL WWW ICQ YIM   Вверх
Alex
Дата 5.4.2005, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



Вот цитата из документации:

Цитата
In fbudf
1. The *NVL and *NULLIF functions remain for backward compatibility, but are deprecated by the
introduction of the new internal functions CASE, COALESCE and NULLIF.
2. Note that fbudf cannot handle string fields bigger than 32Kb - 1 bytes in length. This limit may
have ill effects where strings are concatenated before being passed to UDFs taking string
arguments. If the sum of field is beyond the limit, the behavior is undefined. The function may
return a nonsense result or the fbudf code may perform an illegal operation.
3. If you are porting a database that was created in Firebird 1.0.x and you declared the fbudf
functions truncate and round, those declarations will no longer work with Firebird 1.5 because the
entry_point names were changed. You will need to drop the functions and redeclare them, using
the declarations from the fbudf.sql script in the 1.5 /UDF directory.


Может поможет.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
StayAtHome
Дата 5.4.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


Профиль
Группа: Участник
Сообщений: 456
Регистрация: 26.1.2004
Где: Украина

Репутация: нет
Всего: 16



Alex
То что надо! Coalesce должна меня спасти. Спасибо!
PM MAIL WWW ICQ YIM   Вверх
Alex
Дата 7.4.2005, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



Не за что.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0610 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.