[ОТВЕТИТЬ]
Опции темы
10.11.2014 17:36  
Deamka
Где найти суммуМаржи и товарооборот.
в разбивке по магазам и группам.

Курс взял на FFMapRep верно?

SQL код:
select
CL
.NAME,
CL.TREE,
SUM (F.SALESUM),
SUM (F.SALENOVAT), 
(
SUM (F.SALESUM)*100/
SUM (F.SALENOVAT)-100) as proc
FROM supermag
.FFMapRep F
left join supermag
.SMCARD C ON C.ARTICLE F.ARTICLE
left join supermag
.SACardClass CL ON CL.ID C.IDCLASS
WHERE 
    F
.SALELOCATIONFROM '55'
    
AND (F.SALEOP in (1,3))
    AND (
F.SALEDATE>=TO_DATE('01.09.14','DD.MM.YY'))
    AND (
F.SALEDATE<=TO_DATE('28.09.14','DD.MM.YY'))
GROUP BY   CL.NAME,CL.TREE
ORDER BY  CL
.NAME,CL.TREE 
 
11.11.2014 07:42  
Mtirt
Только ты не маржу нашел, а ставку НДС.
SALENOVAT - это реализация без налогов...
 
19.03.2015 12:00  
BotMan
а товарооборот можно отсюда вытянуть за период времени?
 
19.03.2015 12:02  
Mtirt
Можно. Пробуй.
 
19.03.2015 13:29  
BotMan
остаток товара будет равняться SUM(WI-WO)+SUM(CS-CR) от даты инвентаризации?
 
19.03.2015 14:16  
-Den-
Остатки еще удобно считать не по типу доков а по пришло/ушло, в свое время понравилось такое решение как пример, у кого то спионерил на форуме

Цитата:
select nvl(sum( S.Quantity * decode (D.LocationTo, 32, 1, decode (D.LocationFrom, 32 , -1, 0) ) ), 0) as остаток_на_начало
from Supermag.SmDocuments D, Supermag.SmSpec S
where D.DocType = S.DocType and
D.ID = S.DocID and
S.Article = '000273' and
D.DocState >= 2 and
D.CreatedAt < TO_DATE('20141018','YYYYMMDD') and
( D.LocationTo = 32 or D.LocationFrom = 32 )
красиво и элегантно, без перебора типов
 
23.03.2015 11:11  
svtl
для движения это верно но если нужен именно товарооборот по реализации (продажи за минусом возвратов) - то без типов документов и/или операций не обойтись.
 
23.03.2015 11:12  
svtl
Цитата:
Сообщение от BotMan
остаток товара будет равняться SUM(WI-WO)+SUM(CS-CR) от даты инвентаризации?
вы путаете, похоже, тот остаток, который используется как стартовое сальдо в белорусском товарном отчете, с обычным остатком в СМ.
 
"Спасибо" svtl от:
24.03.2015 21:49  
Starter
Еще способ узнать, где и что взять - бизнес анализ.
Пример - нужно узнать как из супермага вытащить товарооборот, маржу, нач и кон. остаток.
Создаем задачу - реализация в закупочных ценах за период, добавляем поля - МХ, продажа, доход, остаток нач, остаток конечный.
Затем - меняем какую нибудь формулу, либо добавляем заведомо неправильную, чтобы получить ошибку.
И смотрим файл c:\SM2000\Data\SmAnalyticsErrorLog.txt

там находим результирующий запрос. Исправляем ошибку, получаем:

SELECT (LOC.Name) as Field6,round((SUM((nvl(D.SaleSum,0)-nvl(D.RetSum,0)))),4) as Field1,round((SUM(((nvl(D.SaleSum,0)-nvl(D.RetSum,0))-(nvl(D.SaleCP,0)-nvl(D.RetCP,0))))),4) as Field2,round((SUM(nvl(REMF.CP,0))),4) as Field3,round((SUM(nvl(REML.CP,0))),4) as Field4
FROM SMStoreLocations LOC,(SELECT StoreLoc, Article, sum(RetCP) RetCP, sum(RetSum) RetSum, sum(SaleCP) SaleCP, sum(SaleSum) SaleSum FROM (SELECT StoreLoc, Article,to_date('01012000','DDMMYYYY') RepDate,0 MeasNu, 0 RetCP, 0 RetSum, 0 SaleCP, 0 SaleSum FROM supermag.SVLocCard LC UNION ALL SELECT StoreLoc, Article,SaleDate RepDate,0 MeasNu, RetCP, RetSum, SaleCP, SaleSum FROM supermag.SVARealCostPriceOpenedPeriod R WHERE R.SaleDate between to_date('01.02.2015','DD.MM.YYYY') and to_date('28.02.2015','DD.MM.YYYY')) GROUP BY StoreLoc, Article) D,SVARemainsCP REMF,SVARemainsCP REML
WHERE D.Article=REMF.Article(+) and D.StoreLoc=REMF.StoreLoc(+) and to_date('31.01.2015','DD.MM.YYYY')=REMF.RemDate(+) and D.Article=REML.Article(+) and D.StoreLoc=REML.StoreLoc(+) and to_date('28.02.2015','DD.MM.YYYY')=REML.RemDate(+) and D.StoreLoc=LOC.ID
GROUP BY (LOC.Name);

Вот его и используем за основу, по крайней мере, чтобы узнать что и откуда берется.
 
"Спасибо" Starter от:
24.03.2015 21:53  
Starter
И в добавление - нужно учесть, что иногда перед вызовом самого запроса потребуется заполнить фильтры во временных таблицах, вызвать процедуры расчета остатков... То есть, вариант - сделали задачу бизнес анализа, выставили нужные фильтры, посмотрели запрос и его использовали - не всегда проходит. Но посмотреть что и откуда берется - очень даже неплохой вариант.
 
"Спасибо" Starter от:
 


Опции темы



Часовой пояс GMT +3, время: 18:22.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.