|
v8: Вопрос по построителю отчета! | ☑ | ||
---|---|---|---|---|
0
p1C
10.12.12
✎
14:14
|
Проблема такая: Есть отчет "Анализ продаж" создан на основании построителя отчета. Клиент попросил добавить нормативную стоимость и соответственно маржу = (СуммаПродаж-НормативнаяСтоимость)/СуммаПродаж.
Вроде все просто, но проблема возникает с маржой. Чтобы вывести в отчете ее надо поставить в итогах - что не правильно. Вы как решили эту проблему? |
|||
1
ShoGUN
10.12.12
✎
14:16
|
Переделай вывод - в итоговых строках не выводи это поле. А что там в результате запроса - по барабану.
|
|||
2
PR
10.12.12
✎
14:18
|
(1) Пипец
|
|||
3
Повелитель
10.12.12
✎
14:18
|
(0) не вижу проблемы.
По итогам будет считаться маржа по итоговым цифрам. |
|||
4
mih_io
10.12.12
✎
14:18
|
(0) мне непонятно, почему неправильно в итогах. Типовая ут 10.3 отчет продажи, нормально считает рентабельность по этой теме
|
|||
5
p1C
10.12.12
✎
14:19
|
есть какая-то предопределнная процедура приВыводеСтроки() ?
|
|||
6
PR
10.12.12
✎
14:19
|
(0) ВЫРАЗИТЬ((СУММА(СуммаПродаж) - СУММА(НормативнаяСтоимость)) / СУММА(СуммаПродаж) КАК ЧИСЛО(15, 2)
|
|||
7
Повелитель
10.12.12
✎
14:19
|
(5) Ты в запросе в итогах видимо не прописал.
там примерно так должно быть: (Сумма(СуммаПродаж)-Сумма(НормативнаяСтоимость))/Сумма(СуммаПродаж) |
|||
8
ShoGUN
10.12.12
✎
14:20
|
(6) Я думаю, у него и так есть агрегатные функции, раз уж он итоги считает.
|
|||
9
PR
10.12.12
✎
14:20
|
+(:) Плюс еще одна скобка ессно
|
|||
10
Повелитель
10.12.12
✎
14:20
|
(8) Судя по текст нет
|
|||
11
PR
10.12.12
✎
14:21
|
(8) Готов поспорить на ящик коньяка? :))
|
|||
12
p1C
10.12.12
✎
14:21
|
(6), (7) - точно так и написал. В итогах поставил маржу как сумма - так он в итоге сумирует все проценты по всем группировкам
|
|||
13
ShoGUN
10.12.12
✎
14:21
|
(11) Что ж у него в итогах тогда... О_о
|
|||
14
PR
10.12.12
✎
14:21
|
+(9) Это к (6) ессно
|
|||
15
Повелитель
10.12.12
✎
14:22
|
(12) Кидай запрос :)
|
|||
16
PR
10.12.12
✎
14:22
|
(12) Да пипец!
В итогах так напиши. |
|||
17
p1C
10.12.12
✎
14:26
|
Например: Есть 2 группировки: Торговый представитель и номенклатура. Маржа у торг. представителя считает как сумма марж по номенклатуре - вот тут меня не устраивает
|
|||
18
ShoGUN
10.12.12
✎
14:28
|
(17) Сразу бы сказал, я не понял, чё те надо :) В (6) всё правильно, итоги просто надо нормально считать. Ты поставил сумму, вот тебе сумму и считает.
|
|||
19
mih_io
10.12.12
✎
14:28
|
тяжелый случай )
(17) тебе же в (6),(7) сказали как надо сделать. Если не понимаешь, выложи текст запроса, тебе в нем поправят строку, где ты сделал неправильно |
|||
20
p1C
10.12.12
✎
14:28
|
(18) что надо тогда выбрать в итогах ?
|
|||
21
p1C
10.12.12
✎
14:30
|
(19) я также сделал - не переживай столько. В итогах по некоторым группировкам не правильно считается
|
|||
22
ShoGUN
10.12.12
✎
14:31
|
(21) Код давай.
|
|||
23
Повелитель
10.12.12
✎
14:31
|
(21) кидай запрос, бесполезно с тобой спорить ))
|
|||
24
p1C
10.12.12
✎
14:32
|
на английском поймете ?
|
|||
25
ShoGUN
10.12.12
✎
14:33
|
(24) Нет, переводи давай!)))))
|
|||
26
ShoGUN
10.12.12
✎
14:35
|
Блин, я пошутил! )
|
|||
27
Повелитель
10.12.12
✎
14:37
|
(26) Шутник блин, человек в американское посольство побежал из-за тебя.
|
|||
28
p1C
10.12.12
✎
14:38
|
SELECT
SalesTurnovers.QuantityTurnover AS Quantity, SalesTurnovers.SumManagementTurnover AS Sum, SalesTurnovers.Agent AS Agent, SalesTurnovers.Contract.Owner AS Client, SalesTurnovers.Nomenclature AS Nomenclature, SalesTurnovers.Recorder, BEGINOFPERIOD(SalesTurnovers.Period, DAY) AS ПериодДень, BEGINOFPERIOD(SalesTurnovers.Period, WEEK) AS ПериодНеделя, BEGINOFPERIOD(SalesTurnovers.Period, TENDAYS) AS ПериодДекада, BEGINOFPERIOD(SalesTurnovers.Period, MONTH) AS ПериодМесяц, BEGINOFPERIOD(SalesTurnovers.Period, QUARTER) AS ПериодКвартал, BEGINOFPERIOD(SalesTurnovers.Period, HALFYEAR) AS ПериодПолугодие, BEGINOFPERIOD(SalesTurnovers.Period, YEAR) AS ПериодГод, SalesTurnovers.Recorder.PriceType AS ТипЦены, SalesTurnovers.QuantityTurnover * ISNULL(NormativeExpensesCostsSliceLast.Sum, 0) AS НормативнаяСтоимость, CASE WHEN SalesTurnovers.SumManagementTurnover = 0 THEN 0 ELSE CAST((SalesTurnovers.SumManagementTurnover - SalesTurnovers.QuantityTurnover * ISNULL(NormativeExpensesCostsSliceLast.Sum, 0)) / SalesTurnovers.SumManagementTurnover AS NUMBER(15, 2)) END AS Маржа {SELECT Quantity AS Количество, Sum AS Сумма, Agent.* AS Агент, Client.* AS Клиент, Nomenclature.* AS Номенклатура, SalesTurnovers.Contract.* AS Магазин, SalesTurnovers.Organization.* AS Организация, SalesTurnovers.TerritorialDivision.* AS Регион, SalesTurnovers.AccountingType.* AS ТипУчета, SalesTurnovers.Warehouse.* AS Склад, Recorder.* AS Регистратор, ПериодДень, ПериодНеделя, ПериодДекада, ПериодМесяц, ПериодКвартал, ПериодПолугодие, ПериодГод, ТипЦены.*, НормативнаяСтоимость, Маржа} FROM AccumulationRegister.Sales.Turnovers( &DateStart, &DateEnd, Recorder, CASE WHEN &Organization = VALUE(Catalog.Organizations.EmptyRef) THEN TRUE ELSE Organization = &Organization END AND CASE WHEN &TerritorialDivision = VALUE(Catalog.TerritorialDivisions.EmptyRef) THEN TRUE ELSE TerritorialDivision = &TerritorialDivision END) AS SalesTurnovers LEFT JOIN InformationRegister.NormativeExpensesCosts.SliceLast(&DateEnd, Organization = &Organization) AS NormativeExpensesCostsSliceLast ON SalesTurnovers.Nomenclature = NormativeExpensesCostsSliceLast.Nomenclature {WHERE SalesTurnovers.QuantityTurnover AS Количество, SalesTurnovers.SumManagementTurnover AS Сумма, SalesTurnovers.Agent.* AS Агент, SalesTurnovers.Contract.Owner.* AS Клиент, SalesTurnovers.Nomenclature.* AS Номенклатура, SalesTurnovers.Warehouse.* AS Склад, SalesTurnovers.Contract.* AS Магазин, SalesTurnovers.AccountingType.* AS ТипУчета, SalesTurnovers.Organization.* AS Организация, SalesTurnovers.TerritorialDivision.* AS Регион, SalesTurnovers.Recorder.* AS Регистратор, SalesTurnovers.VATSumManagementTurnover AS НДС, (CASE WHEN SalesTurnovers.Nomenclature.КоэфициентВУпаковке = 0 THEN SalesTurnovers.QuantityTurnover ELSE SalesTurnovers.QuantityTurnover / SalesTurnovers.Nomenclature.КоэфициентВУпаковке END) AS КоличествоУпаковок, SalesTurnovers.Recorder.PriceType.* AS ТипЦены, (SalesTurnovers.QuantityTurnover * ISNULL(NormativeExpensesCostsSliceLast.Sum, 0)) AS НормативнаяСтоимость, (CASE WHEN SalesTurnovers.SumManagementTurnover = 0 THEN 0 ELSE CAST((SalesTurnovers.SumManagementTurnover - SalesTurnovers.QuantityTurnover * ISNULL(NormativeExpensesCostsSliceLast.Sum, 0)) / SalesTurnovers.SumManagementTurnover AS NUMBER(15, 2)) END) AS Маржа} {ORDER BY Quantity, Sum, Agent.* AS Агент, Client.* AS Клиент, Nomenclature.* AS Номенклатура, SalesTurnovers.Warehouse.* AS Склад, SalesTurnovers.Contract.* AS Магазин, SalesTurnovers.AccountingType.* AS ТипУчета, SalesTurnovers.Organization.* AS Организация, SalesTurnovers.TerritorialDivision.* AS Регион, Recorder.* AS Регистратор, ТипЦены.*, НормативнаяСтоимость, Маржа} TOTALS SUM(Quantity), SUM(Sum), SUM(Маржа) BY OVERALL, Client, Nomenclature, Agent {TOTALS BY Agent.* AS Агент, Client.* AS Клиент, Nomenclature.* AS Номенклатура, SalesTurnovers.Warehouse.* AS Склад, SalesTurnovers.Contract.* AS Магазин, SalesTurnovers.Organization.* AS Организация, SalesTurnovers.TerritorialDivision.* AS Регион, SalesTurnovers.AccountingType.* AS ТипУчета, Recorder.* AS Регистратор, ПериодДень, ПериодНеделя, ПериодДекада, ПериодМесяц, ПериодКвартал, ПериодПолугодие, ПериодГод, ТипЦены.*, НормативнаяСтоимость, Маржа} AUTOORDER |
|||
29
p1C
10.12.12
✎
14:38
|
Извините но у меня конфа английская
|
|||
30
Повелитель
10.12.12
✎
14:41
|
Вот тут:
TOTALS за место SUM(Маржа) вставь: ВЫРАЗИТЬ((СУММА(СуммаПродаж) - СУММА(НормативнаяСтоимость)) / СУММА(СуммаПродаж) КАК ЧИСЛО(15, 2) Тока свои значения вставь, тебе про это и писали все время |
|||
31
p1C
10.12.12
✎
14:42
|
(30) щас попробую. извиняюсь что неправильно вас понял
|
|||
32
ShoGUN
10.12.12
✎
14:45
|
(30) Лучше всё же по-английски, а то мешанину читать - убиться веником.
|
|||
33
p1C
10.12.12
✎
14:46
|
Все заработало. Спасибо всем и извините за нервотрепку )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |