Главная страница
    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
11-1197356063
nikfel
2007-12-11 09:54
2009.02.22
Как отловить убирание с иконки мыши в трее.


15-1230205417
тимохов
2008-12-25 14:43
2009.02.22
Почему в русской WinXP меню могут показываться кракозяблами?


4-1206045437
i
2008-03-20 23:37
2009.02.22
Novell netware login name...


15-1229929140
Slider007
2008-12-22 09:59
2009.02.22
С днем рождения ! 22 декабря 2008 понедельник


15-1230290011
GEN++
2008-12-26 14:13
2009.02.22
Есть вакансия программиста С для микроконтроллеров ATMEL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский