![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
расчет остатка как приход-расход [D7, XP]
gulya © (2009-01-10 20:39:00)Здравствуйте. Хотелось бы получить дельный совет по расчету остатка. Даны 2 таблицы: приход и расход товаров. Задача: вывести остатки товаров различного наименования.
Код программы следующий:
' select rashod.Katalog_nomer as Каталожный_номер ,'+
' rashod.Nazvanie_tovara as Наименование_товара, '+
' rashod.Ed_izmereniya as Единица_измерения, '+
' Sum(prihod.Kol_vo) as Приход, Sum(rashod.Kol_vo) as Расход, '+
' Sum(prihod.Kol_vo)-Sum(rashod.Kol_vo) as Остаток '+
' from rashod,prihod where '+
' (rashod.Katalog_nomer=prihod.Katalog_nomer) and '+
' (rashod.Ed_izmereniya=prihod.Ed_izmereniya) '+
' group by rashod.Katalog_nomer,rashod.Nazvanie_tovara,rashod.Ed_izmereniya '+
' union '+
' select prihod.Katalog_nomer as Каталожный_номер ,'+
' prihod.Nazvanie_tovara as Наименование_товара, '+
' prihod.Ed_izmereniya as Единица_измерения, '+
' Sum(prihod.Kol_vo) as Приход, Sum(0) as Расход, '+
' Sum(prihod.Kol_vo) as Остаток '+
' from prihod where not exists '+
' (select rashod.Katalog_nomer as Каталожный_номер,'+
' rashod.Nazvanie_tovara as Наименование_товара,'+
' rashod.Ed_izmereniya as Единица_измерения '+
' from rashod where '+
' (rashod.Katalog_nomer=prihod.Katalog_nomer) and '+
' (rashod.Ed_izmereniya=prihod.Ed_izmereniya) '+
' group by rashod.Katalog_nomer,rashod.Nazvanie_tovara,rashod.Ed_izmereniya )'+
' group by prihod.Katalog_nomer,prihod.Nazvanie_tovara,prihod.Ed_izmereniya ';
Не знаю почему, но значения поля расход удваиваются.
MsGuns (2009-01-13 00:23:00) [1]>YurikGL © (11.01.09 21:39) [5]
Таблица сальдовых остатков.
gulya (2009-01-12 19:28:00) [2]спасибо за совет.С программой разобралась, работает.
YurikGL (2009-01-11 21:39:00) [3]
> Ну и в дополнение к [1]. Что будет, если появится новый
> вид документа, например "Возврат" - будете добавлять новую
> таблицу, переписывать все приложения и править все запросы
> ?
В дополнение к этому... если будут тысячи приходов и расходов, то при выводе состояния склада каждый раз подобный запрос выполняться будет?
ИМХО, сделать отдельную таблицу склада и считать в ней насколько что изменилось триггерами.
gulya (2009-01-11 15:24:00) [4]Да, склад единственный
Cobalt (2009-01-11 13:16:00) [5]> gulya
Склад единственный?
MsGuns (2009-01-10 23:04:00) [6]Вы полагаете, что найдется много желающих разбирать этот жуткий код ?
Ну и в дополнение к [1]. Что будет, если появится новый вид документа, например "Возврат" - будете добавлять новую таблицу, переписывать все приложения и править все запросы ?
Кстати, возврат может быть отнесен как к приходу, так и к расходу (со знаком минус).
Сергей М. (2009-01-10 21:36:00) [7]
> gulya
Тебя кто-то надоумил хранить разные акты движения товаров в разныхтаблицах ? Или это собственное "ноу-хау" ?