25.09.2019 16:32
Пользуйся нормальными редакторами с подсветкой синтаксиса... Не вникал, но ...

25.09.2019 17:33
скопируйте в блокнот, или в Notepad++ или ещё куда, упростите выражение, получите:
decode(продажа кол/(число дней) ,0,0,ост кол/(продажа кол/(число дней))
действительно, скобки не хватает. И потом - а если пользователь выберет один день в фильтре ? тогда тоже упадёт с делением на ноль.
Ну и, вспомнив математику, z/(x/y) = z*y/x
т.е. проверять на ноль нужно только количество продаж.
Затем - число дней = дата конца - дата начала +1. так как иначе если выбран один день (дата начала = дата конца), тогда у вас число дней продаж будет равно 0.

т.е. нужно писать
decode({Реализация. Общая, кол-во},0,0,{Остатки на конец периода. Остаток, кол-во}*({Фильтр. Параметр модели. Отчетный период. FDateLast}-{Фильтр. Параметр модели. Отчетный период. FDateFirst}+1)/{Реализация. Общая, кол-во})
18.10.2019 06:25
Не могу сообразить как на основе выбранной модель "Реализация в закупочных ценах за период" добавить еще столбец "Число дней реализации" в созданную задачу.
18.10.2019 08:48
Стандартными методами - никак. В этой задаче нет поля Дата, поэтому добавить функцию подсчета уникальных дат продаж не получится. Вот если бы задача была на основе модели "Реализация в закупочных ценах по датам", то было бы просто.
Но, как всегда, есть выход, нужно только прочитать инструкцию к бизнес анализу, а именно, ту её часть, которая называется "для продвинутых пользователей". Найти несложно в хранилище, https://storage.olegon.ru/supermag/С...вателей.doc.7z

Для облегчения функцию, которая подсчитывает число дней продажи в выбранном периоде я написал:
SQL код:
create or replace function RAD_Get_Card_Sale_Count_Dates(ADateFrom in date, ADateTo in date, ALocID in supermag.smstorelocations.id%type,
  AArticle in supermag.smcard.article%type) return integer 
 is
  res integer;
  error_param_value exception; 
  begin
  SELECT round((COUNT(DISTINCT D.SaleDate)), 0) into res
    FROM SMStoreLocations LOC
        ,SVARealCostPriceOpenedPeriod D
        ,SVCardName CRD
    WHERE D.Article = CRD.Article
        AND D.StoreLoc = LOC.ID
        AND CRD.article =  AArticle
        AND D.SaleDate BETWEEN ADateFrom AND ADateTo
        AND (nvl(D.SaleQty, 0) != 0)
        AND LOC.ID = ALocID;
    return(res);
exception 
  when no_data_found then
    return(null);
  when others then
    raise;
end RAD_Get_Card_Sale_Count_Dates;
/  
commit; 
Всё остальное довольно подробно разжевано в документации.
18.10.2019 10:35
Цитата:
Starter Для облегчения функцию, которая подсчитывает число дней продажи в выбранном периоде я написал
Всё остальное довольно подробно разжевано в документации.
Starter, спасибо за функцию. Но можно поподробнее как ее добавить? Под каким пользователем? Нужно ли будет выдавать гранты пользователям супермага, которые будут пользоваться этой задачей?
18.10.2019 11:11
1. sqlplus
2. supermag
3. Если сильно хочется, то можно выполнить ещё код ниже, но будет работать и без этого:
SQL код:
grant execute on supermag.RAD_Get_Card_Sale_Count_Dates to supermag_user;
commit; 
Как добавить вызов функции в бизнес-анализе довольно подробно в документации описано. Параметры функции вроде тоже интуитивно понятно названы.
30.08.2024 14:15
Цитата:
Starter SVARealCostPriceOpenedPeriod
Подскажите где почитать про эту таблицу.... В официальных мануалах нет про таблицы начинающиеся с 'sv'
30.08.2024 14:25
В Супермаг+ с SV начинаются названия представлений (ака views).

SVARealCostPriceOpenedPeriod является представлением таблицы FFMapRep
SQL код:
create or replace view svarealcostpriceopenedperiod as
select M.SaleDate,
            decode(M.SaleLocationFrom,-2,M.SaleLocationTo,null,M.SaleLocationTo,M.SaleLocationFrom
                    ) StoreLoc,
            M.Article,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'0',M.Quantity,0), 0) ) SaleDocDefQty,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) SaleDocDefSum,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleDocDefCP,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) SaleDocDefSumNoVAT,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) SaleDocDefSumNoTax,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleDocDefCPNoVAT,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'0',M.Quantity,0), 0) ) SaleCashDefQty,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) SaleCashDefSum,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleCashDefCP,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) SaleCashDefSumNoVAT,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) SaleCashDefSumNoTax,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleCashDefCPNoVAT,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'0',M.Quantity,0), 0) ) SaleDefQty,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) SaleDefSum,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleDefCP,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) SaleDefSumNoVAT,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) SaleDefSumNoTax,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleDefCPNoVAT,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'0',M.Quantity,0), 0) ) RetDocDefQty,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) RetDocDefSum,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetDocDefCP,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) RetDocDefSumNoVAT,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) RetDocDefSumNoTax,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetDocDefCPNoVAT,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'0',M.Quantity,0), 0) ) RetCashDefQty,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) RetCashDefSum,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetCashDefCP,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) RetCashDefSumNoVAT,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) RetCashDefSumNoTax,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetCashDefCPNoVAT,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'0',M.Quantity,0), 0) ) RetDefQty,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) RetDefSum,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetDefCP,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) RetDefSumNoVAT,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) RetDefSumNoTax,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'0',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetDefCPNoVAT,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'1',M.Quantity,0), 0) ) SaleDocUndefQty,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) SaleDocUndefSum,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleDocUndefCP,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) SaleDocUndefSumNoVAT,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) SaleDocUndefSumNoTax,
            sum( decode(M.SaleType, 'WO', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleDocUndefCPNoVAT,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'1',M.Quantity,0), 0) ) SaleCashUndefQty,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) SaleCashUndefSum,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleCashUndefCP,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) SaleCashUndefSumNoVAT,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) SaleCashUndefSumNoTax,
            sum( decode(M.SaleType, 'CS', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleCashUndefCPNoVAT,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'1',M.Quantity,0), 0) ) SaleUndefQty,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) SaleUndefSum,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleUndefCP,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) SaleUndefSumNoVAT,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) SaleUndefSumNoTax,
            sum( decode(M.SaleOp, 1, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) SaleUndefCPNoVAT,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'1',M.Quantity,0), 0) ) RetDocUndefQty,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) RetDocUndefSum,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetDocUndefCP,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) RetDocUndefSumNoVAT,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) RetDocUndefSumNoTax,
            sum( decode(M.SaleType, 'WI', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetDocUndefCPNoVAT,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'1',M.Quantity,0), 0) ) RetCashUndefQty,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) RetCashUndefSum,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetCashUndefCP,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) RetCashUndefSumNoVAT,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) RetCashUndefSumNoTax,
            sum( decode(M.SaleType, 'CR', decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetCashUndefCPNoVAT,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'1',M.Quantity,0), 0) ) RetUndefQty,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4),0), 0) ) RetUndefSum,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetUndefCP,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4),0), 0) ) RetUndefSumNoVAT,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4),0), 0) ) RetUndefSumNoTax,
            sum( decode(M.SaleOp, 3, decode(nvl(M.ForcedMapping,'0'),'1',round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4),0), 0) ) RetUndefCPNoVAT,
            sum( decode(M.SaleType, 'WO', M.Quantity, 0) ) SaleDocQty,
            sum( decode(M.SaleType, 'WO', round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4), 0) ) SaleDocSum,
            sum( decode(M.SaleType, 'WO', round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) SaleDocCP,
            sum( decode(M.SaleType, 'WO', round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4), 0) ) SaleDocSumNoVAT,
            sum( decode(M.SaleType, 'WO', round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4), 0) ) SaleDocSumNoTax,
            sum( decode(M.SaleType, 'WO', round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) SaleDocCPNoVAT,
            sum( decode(M.SaleType, 'CS', M.Quantity, 0) ) SaleCashQty,
            sum( decode(M.SaleType, 'CS', round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4), 0) ) SaleCashSum,
            sum( decode(M.SaleType, 'CS', round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) SaleCashCP,
            sum( decode(M.SaleType, 'CS', round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4), 0) ) SaleCashSumNoVAT,
            sum( decode(M.SaleType, 'CS', round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4), 0) ) SaleCashSumNoTax,
            sum( decode(M.SaleType, 'CS', round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) SaleCashCPNoVAT,
            sum( decode(M.SaleOp, 1, M.Quantity, 0) ) SaleQty,
            sum( decode(M.SaleOp, 1, round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4), 0) ) SaleSum,
            sum( decode(M.SaleOp, 1, round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) SaleCP,
            sum( decode(M.SaleOp, 1, round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4), 0) ) SaleSumNoVAT,
            sum( decode(M.SaleOp, 1, round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4), 0) ) SaleSumNoTax,
            sum( decode(M.SaleOp, 1, round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) SaleCPNoVAT,
            sum( decode(M.SaleType, 'WI', M.Quantity, 0) ) RetDocQty,
            sum( decode(M.SaleType, 'WI', round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4), 0) ) RetDocSum,
            sum( decode(M.SaleType, 'WI', round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) RetDocCP,
            sum( decode(M.SaleType, 'WI', round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4), 0) ) RetDocSumNoVAT,
            sum( decode(M.SaleType, 'WI', round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4), 0) ) RetDocSumNoTax,
            sum( decode(M.SaleType, 'WI', round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) RetDocCPNoVAT,
            sum( decode(M.SaleType, 'CR', M.Quantity, 0) ) RetCashQty,
            sum( decode(M.SaleType, 'CR', round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4), 0) ) RetCashSum,
            sum( decode(M.SaleType, 'CR', round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) RetCashCP,
            sum( decode(M.SaleType, 'CR', round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4), 0) ) RetCashSumNoVAT,
            sum( decode(M.SaleType, 'CR', round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4), 0) ) RetCashSumNoTax,
            sum( decode(M.SaleType, 'CR', round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) RetCashCPNoVAT,
            sum( decode(M.SaleOp, 3, M.Quantity, 0) ) RetQty,
            sum( decode(M.SaleOp, 3, round(decode(M.SaleQ,0,0,M.SaleSum*M.Quantity/M.SaleQ),4), 0) ) RetSum,
            sum( decode(M.SaleOp, 3, round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeSum,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) RetCP,
            sum( decode(M.SaleOp, 3, round(decode(M.SaleQ,0,0,M.SaleNoVAT*M.Quantity/M.SaleQ),4), 0) ) RetSumNoVAT,
            sum( decode(M.SaleOp, 3, round(decode(M.SaleQ,0,0,M.SaleNoTax*M.Quantity/M.SaleQ),4), 0) ) RetSumNoTax,
            sum( decode(M.SaleOp, 3, round(decode(nvl(M.IncomeQ,0),0,0,nvl(M.IncomeNoVAT,0)*M.Quantity/nvl(M.IncomeQ,0)),4), 0) ) RetCPNoVAT
        from FFMapRep M
        where    M.SaleType in ('CR', 'WI', 'CS', 'WO')
            and M.SaleOp in (1, 3)
        group by M.SaleDate,
                decode(M.SaleLocationFrom,-2,M.SaleLocationTo,null,M.SaleLocationTo,M.SaleLocationFrom),
                M.Article; 
30.08.2024 14:49
А где можно почитать о готовых представлениях, кроме как разбираться в тексте запроса?
30.08.2024 14:58
Вы же явно хотите документацию Супермаг+, а не просто список представлений
SQL код:
SELECT VIEW_NAME, TEXT
FROM USER_VIEWS; 
?
Часовой пояс GMT +3, время: 05:02.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.