Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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]

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



Страницы: 1 вся ветка

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

Наверх





Память: 0.46 MB
Время: 0.005 c
4-1206106972
chak_xakep
2008-03-21 16:42
2009.02.22
Как на Delphi посредством WIN32API создать MainMenu


15-1230091521
TUser
2008-12-24 07:05
2009.02.22
Выворачиваем сферу наизнанку


2-1231843476
vegarulez
2009-01-13 13:44
2009.02.22
вопрос про корректную остановку потока


2-1231438760
NEWichok
2009-01-08 21:19
2009.02.22
Как организовать проверку перед "POST"?


15-1230210505
Правильный$Вася
2008-12-25 16:08
2009.02.22
фигня какая-то с форумом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский