Показать сообщение отдельно
Старый 26.02.2010, 12:52   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Prophetic Посмотреть сообщение
Добрый день,

Возникла "простая" задача: в процедуре на SQL-сервере получить себестоимость всех проданных товаров за период по всем складам (для начала).
Предполагаю, что данные нужно брать как inventTrans.CostAmountPosted+inventTrans.CostAmountAdjustment.
Есть custInvoiceTrans, которая связана с inventTrans по полям inventTransId и inventDimId.
Какие условия нужно применить, чтобы получить верную информацию?
"Простое" решение:
SELECT SUM(CostAmountPosted) + SUM(CostAmountAdjustment) FROM INVENTRANS
WHERE TRANSTYPE = 0 -- Заказ на продажу

Но. Ключевое слово "За период". Так Вы получите только текущую себестоимость, т.е. с учетом всех введенных коррекций и накладных расходов.
Т.е., строя запрос на 01.01.10 Вы получите себестоимость уже с учетом накладных расходов, которые допустим были введены 01.02.10
Т.о. если Вы планируете по этому запросу "сверяться" с ГК - то у Вас цифры могут не сойтись.

Также, тут учтутся все возвраты по заказам на продажу. И если где-то не проставлен номер возвращенного лота - то возвраты будут учтены с нулевой ценой.
При этом тут не учтутся прочие списания товара со склада (в результате недостачи к примеру или возвраты поставщикам).
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: Prophetic (1).