Вниз
Скачать: CL | DM;

запрос   Найти похожие ветки 

← →
Леха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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.006 c
2-1351589231
Сергей
2012-10-30 13:27
2013.06.02
Функция CreateDIBSection Не создается палитра???


2-1351922003
alexdn
2012-11-03 09:53
2013.06.02
Расширение формы


4-1265319431
ProgRAMmer Dimonych
2010-02-05 00:37
2013.06.02
Сообщения в неклиентской области окна


15-1359033022
картман
2013-01-24 17:10
2013.06.02
отопление


15-1358877111
Дмитрий С
2013-01-22 21:51
2013.06.02
Почтовый ретранслятор.




   Наверх