Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запрос [D6]


Леха2 ©   (2010-11-11 15:36:00) 

Имеется представление, в котором, предположим, есть 3 поля:
Num (номер)
Value (кол-во)
Type (тип. Где 0-приход, 1-расход)

Задача: просчитать общее количество с учетом прихода и расхода.

В данный момент я расчитываю так:
Сумма прихода  =  select sum(Value) from таблица where Type=0
Сумма расхода  =  select sum(Value) from таблица where Type=1

Общая = Сумма прихода - Сумма расхода

Можно ли делать еще быстрее? Предположим, не двумя запросами, а одним?
В общем, рассмотрю любые варианты.

Спасибо!


Леха2   (2010-11-11 16:48:00) [1]

Спасибо всем! Помогло.


12   (2010-11-11 16:24:00) [2]


> делаем  1 -приход, -1 -расход
> теперь
> select sum(value*type) from таблица дает искомое

тоже хотел сказать!
но, блин, автор последнюю строчку

> Общая = Сумма прихода - Сумма расхода

как код не выделил, и ее не прочитал внимательно :)


Petr V. Abramov   (2010-11-11 16:06:00) [3]


> Type (тип. Где 0-приход, 1-расход)

делаем   1-приход, -1-расход
теперь
select sum(value*type) from таблицадает искомое


sniknik   (2010-11-11 16:03:00) [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 таблица


12   (2010-11-11 15:54:00) [5]

select sum(Value), Type from таблица group by Type


Леха2   (2010-11-11 15:48:00) [6]

>у тебя же нет субд/движка

Есть. Я ж написал, использую представление. Firebird использую в качестве БД.

>то почему бы и нет

И как он будет выглядеть?


sniknik   (2010-11-11 15:39:00) [7]

> Предположим, не двумя запросами, а одним?
если субд/движок поддерживает то почему бы и нет? хотя постой, у тебя же нет субд/движка. НЕЛЬЗЯ!

> В общем, рассмотрю любые варианты.
используй субд.


Наверх

Титульная страница Поиск, карта сайта Написать письмо