Форум: "Начинающим";
Поиск по всему сайту: www.delphimaster.net;
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];




Вниз

расчет остатка как приход-расход 


gulya   (2009-01-10 20:39) [0]

Здравствуйте. Хотелось бы получить дельный совет по расчету остатка. Даны 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 ";
 
Не знаю почему, но значения поля расход удваиваются.



Сергей М. ©   (2009-01-10 21:36) [1]


> gulya


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



MsGuns ©   (2009-01-10 23:04) [2]

Вы полагаете, что найдется много желающих разбирать этот жуткий код ?

Ну и в дополнение к [1]. Что будет, если появится новый вид документа, например "Возврат" - будете добавлять новую таблицу, переписывать все приложения и править все запросы ?

Кстати, возврат может быть отнесен как к приходу, так и к расходу (со знаком минус).



Cobalt ©   (2009-01-11 13:16) [3]

> gulya

Склад единственный?



gulya   (2009-01-11 15:24) [4]

Да, склад единственный



YurikGL ©   (2009-01-11 21:39) [5]


> Ну и в дополнение к [1]. Что будет, если появится новый
> вид документа, например "Возврат" - будете добавлять новую
> таблицу, переписывать все приложения и править все запросы
> ?

В дополнение к этому... если будут тысячи приходов и расходов, то при выводе состояния склада каждый раз подобный запрос выполняться будет?
ИМХО, сделать отдельную таблицу склада и считать в ней насколько что изменилось триггерами.



gulya   (2009-01-12 19:28) [6]

спасибо за совет.С программой разобралась, работает.



MsGuns ©   (2009-01-13 00:23) [7]

>YurikGL ©   (11.01.09 21:39) [5]

Таблица сальдовых остатков.




Форум: "Начинающим";
Поиск по всему сайту: www.delphimaster.net;
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.018 c
15-1230101717     Кое кто               2008-12-24 09:55  2009.02.22  
Может ли книга в 320 стр. стоить 61 рубль??


2-1231601420      Lukos                 2009-01-10 18:30  2009.02.22  
Что предпочтительнее Table1.Append или Table1.Insert ?


2-1231824561      r900000               2009-01-13 08:29  2009.02.22  
Работа с Мемо компонентами


2-1231786870      JustForQuestion       2009-01-12 22:01  2009.02.22  
GRID + ProgressBar


2-1231835371      Кирил                 2009-01-13 11:29  2009.02.22  
Как узнать - сколько дней в месяце?