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

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

расчет остатка как приход-расход [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


Тебя кто-то надоумил хранить разные акты движения товаров в разныхтаблицах ? Или это собственное "ноу-хау" ?


Наверх

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