![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как составить оптимальный запрос? [D5, IB6.x]
Lika © (2004-08-11 11:43:00)Есть одна таблица в которой хранится приход товара и расход товара т.е состоит из полей "код товара", "кол-во", "цена"... и есть поле "тип" в котором, если значение =0, то это приход, если начение =1, то это расход. Нужно найти остатки товаров. Подскажите самый оптимальный способ это сделать, может запросом или несколькими, а может еще как?
stas_x (2004-08-11 12:21:00) [21]
Sergey13 © (11.08.04 12:17) [4]
давало бы нужный результат. Можно свою фунцию написать для возврата -1 и 1 из 1 и 0.
Илм Update сделать. У меня так же работает склад только 1 и -1 и нет никаких проблем !
Sergey13 (2004-08-11 12:17:00) [22]Если бы тип имел значения -1 и 1 то
select tovar,sum(kol*tip) from table
group by tovar
давало бы нужный результат. Можно свою фунцию написать для возврата -1 и 1 из 1 и 0.
Sandman25 (2004-08-11 12:17:00) [23]В хранимой процедуре. Это если нужно по конкретному товару.
Если нужно по всем товарам, то будут проблемы, ибо не поддерживается ни case, ни iif. Скорость резко упадет.
Lika (2004-08-11 12:10:00) [24]А можно поподробнее. Сделать два запроса в первом весь приход по каждому товару, а во втором расход. А как потом проанализировать и вычесть? В цикле?
Sandman25 (2004-08-11 11:47:00) [25]Оптимальный способ - триггер и дополнительная табица.
А вообще для IB6 можно через
select sum(..) from ... where приход
и
select sum(..) from ... where расход
Результаты проанализировать на null и вычесть.