Главная страница
    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
1-1207677282
Тыщ
2008-04-08 21:54
2009.02.22
Как выравнить код и данные на границу 16 байт?


6-1198794565
asker
2007-12-28 01:29
2009.02.22
Ответ для браузера


2-1231656525
pavelkq
2009-01-11 09:48
2009.02.22
Пропорциональный ресайз картинки под Imagelist и DrawGrid


10-1152894438
TStas
2006-07-14 20:27
2009.02.22
Как вписывать что-то в вордовскую таблицу?


4-1205435861
Guest312
2008-03-13 22:17
2009.02.22
Ole перехват?





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