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

В модуле 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
10.11.2003, 17:04
    #32319202
vovan1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно в функции типа SUM реализовать условие?
Кстати а можно еще так :)

Select id_firm, SUM(suma)
FROM vznosi
WHERE id_account=1
GROUP BY id_firm
...
Рейтинг: 0 / 0
10.11.2003, 17:38
    #32319228
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно в функции типа SUM реализовать условие?
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
11.11.2003, 03:01
    #32319462
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно в функции типа SUM реализовать условие?
Dnico
ну так можно использовать union и все....
а по поводу чужих функций... те что борландовые, их менять не нужнои наборчик там приятный... зря ты так на них...
а вот скаченные библиотеки с нета не люблю... глюки в них часто...
...
Рейтинг: 0 / 0
11.11.2003, 10:48
    #32319702
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно в функции типа SUM реализовать условие?
StarWind
А я про "борландовые" молчал. Да, там есть все что требуется. :)

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


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