powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как можно в функции типа SUM реализовать условие?
13 сообщений из 13, страница 1 из 1
Как можно в функции типа SUM реализовать условие?
    #32318758
dr100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как можно в функции типа SUM реализовать условие?
Типа:
Select id_firm, sum( if id_account=1 then suma, else 0), from vznosi
group by id_firm
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32318797
Gatorr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотелось бы ddl таблицы
и что такое по смыслу
id_account ?
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32318813
dr100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если можно, глянь сюда:\r
\r
/topic/58072\r
\r
вся загвоздка у меня в том, что бы запрос суммировал суммы для каждой фирмы в зависимости от номеров счетов.
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32318865
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотря каким сервером пользуешься. В Ya есть IIF, а в FB есть COALESCE.
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319053
dr100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если я использую Borland Interbase 6.x?
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319058
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда нужно писать либо ХП, либо UDF. :)
Best regards,
Dnico.
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319070
dr100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
плохая новость - тоже новость(. Спасибо за инфо. Теперь хоть знаю чем заняться..
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319197
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем писать то что уже написано.

В модуле rfunc.dll есть ф-и
DIIF(i,i1,i2) - для Integer
IIF(i,f1,f2) - для Double
CIF(i,s1,s2) - для String
Если i<>0 то 1-й иначе 2-й

В твоем случае будет
SELECT id_firm, SUM (DIF(id_account-1,suma,0))
FROM vznosi
GROUP BY id_firm

Объявление ф-ий:
DECLARE EXTERNAL FUNCTION IIF
INTEGER, INTEGER, INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'fn_iif' MODULE_NAME 'rfunc';

DECLARE EXTERNAL FUNCTION DIF
INTEGER, DOUBLE PRECISION, DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'fn_dif' MODULE_NAME 'rfunc';

DECLARE EXTERNAL FUNCTION CIF
INTEGER, CSTRING(256), CSTRING(256)
RETURNS CSTRING(256)
ENTRY_POINT 'fn_cif' MODULE_NAME 'rfunc';
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319202
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати а можно еще так :)

Select id_firm, SUM(suma)
FROM vznosi
WHERE id_account=1
GROUP BY id_firm
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319228
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan1
rfunc.dll - правильно ,просто я не использую чужие, так как если что нужно
исправить, то копаться в чужих кодах бывает довольно затруднительно.

А насчет этого запроса
Код: plaintext
1.
2.
3.
4.
Select id_firm, SUM(suma) 
FROM vznosi 
WHERE id_account= 1  
GROUP BY id_firm

- думается что нужно получить в результате следущее:
0001 1000
0002 2000
0003 0 !!!
0004 0 !!!
0005 3000

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319462
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dnico
ну так можно использовать union и все....
а по поводу чужих функций... те что борландовые, их менять не нужнои наборчик там приятный... зря ты так на них...
а вот скаченные библиотеки с нета не люблю... глюки в них часто...
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319702
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarWind
А я про "борландовые" молчал. Да, там есть все что требуется. :)

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Как можно в функции типа SUM реализовать условие?
    #32319757
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dnico
упс, сорри, утром дело было. Похоже что еще спал :))
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как можно в функции типа SUM реализовать условие?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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