Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
ВнизПроблема с запросом Найти похожие ветки
← →
Gennadiy (2003-11-25 18:51) [0]Уважаемые мастера!!!
Подскажите пожалуйста с такой проблемой в запросе базы Firebird.
Есть таблица MONEY с полями
ID-идентификатор
SUMM-сумма полатежа
TIP-тип платежа (это integer если =1 то приход, если 0-то расход).
DATEPLATES-дата платежа
Так вот мне нужно сделать запрос в результате выполнения которого было число равное разнице между суммой вcего прихода и суммой всего расхода,
что то вроде вот этоого
SELECT SUM(SUMM) from money where tip=1 -
SELECT SUM(SUMM) from money where tip=0
← →
Serg (2003-11-25 18:54) [1]запросом не сделаешь. пиши прок
← →
Johnmen (2003-11-25 18:56) [2]SELECT SUM(SUMM*tip)-SUM(SUMM*(1-tip)) from money
← →
Sandman25 (2003-11-25 18:57) [3]select sum(summ*(2*tip-1)) from money
← →
Vemer (2003-11-25 18:58) [4]А если так:
Select ((Select Sum(Summ) From Money Where Tip=1) - (Select Sum(Summ) From Money Where Tip=0)) As Raznica From Money
← →
Johnmen (2003-11-25 19:00) [5]>Sandman25 © (25.11.03 18:57)
;-)
← →
Vemer (2003-11-25 19:03) [6]Нам в синхронном плавании надо участвовать.
Мой вариант хоть и самый громозкий, зато не зависит от значений TIP :).
← →
Romkin (2003-11-25 19:05) [7]Угу, только для IB6.x никак не подходит
← →
Gennadiy (2003-11-25 19:37) [8]Спасибо всем!!!!
Предложенные варианты отлично работают.
← →
Sandman25 (2003-11-26 10:05) [9][5] Johnmen © (25.11.03 19:00)
У нас точно такая же структура таблиц, как и у автора (1/0), так что мне такие запросы снятся по ночам :)
Жаль, что не подумали об этом раньше и не сделали 1/-1. Тогда можно было бы писать просто sum(summ*tip).
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c