Форум: "Базы";
Текущий архив: 2013.06.02;
Скачать: [xml.tar.bz2];
Вниззапрос Найти похожие ветки
← →
Леха2 (2010-11-11 15:36) [0]Имеется представление, в котором, предположим, есть 3 поля:
Num (номер)
Value (кол-во)
Type (тип. Где 0-приход, 1-расход)
Задача: просчитать общее количество с учетом прихода и расхода.
В данный момент я расчитываю так:
Сумма прихода = select sum(Value) from таблица where Type=0
Сумма расхода = select sum(Value) from таблица where Type=1
Общая = Сумма прихода - Сумма расхода
Можно ли делать еще быстрее? Предположим, не двумя запросами, а одним?
В общем, рассмотрю любые варианты.
Спасибо!
← →
sniknik © (2010-11-11 15:39) [1]> Предположим, не двумя запросами, а одним?
если субд/движок поддерживает то почему бы и нет? хотя постой, у тебя же нет субд/движка. НЕЛЬЗЯ!
> В общем, рассмотрю любые варианты.
используй субд.
← →
Леха2 (2010-11-11 15:48) [2]>у тебя же нет субд/движка
Есть. Я ж написал, использую представление. Firebird использую в качестве БД.
>то почему бы и нет
И как он будет выглядеть?
← →
12 © (2010-11-11 15:54) [3]select sum(Value), Type from таблица group by Type
← →
sniknik © (2010-11-11 16:03) [4]> select sum(Value), Type from таблица group by Type
это возможно будет дольше чем типа (смотря как индексы по полю учасnвуют) -select
sum(case when Type=0 then Value else 0 end) as sum1,
sum(case when Type=1 then Value else 0 end) as sum2
from таблица
← →
Petr V. Abramov © (2010-11-11 16:06) [5]
> Type (тип. Где 0-приход, 1-расход)
делаем1
-приход,-1
-расход
теперьselect sum(value*type) from таблица
дает искомое
← →
12 © (2010-11-11 16:24) [6]
> делаем 1 -приход, -1 -расход
> теперь
> select sum(value*type) from таблица дает искомое
тоже хотел сказать!
но, блин, автор последнюю строчку
> Общая = Сумма прихода - Сумма расхода
как код не выделил, и ее не прочитал внимательно :)
← →
Леха2 (2010-11-11 16:48) [7]Спасибо всем! Помогло.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2013.06.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c