|
Помогите въехать в запрос, не 1С, SQL |
☑ |
0
Kongo2019
16.09.22
✎
15:47
|
Запрос
INSERT INTO [BP].[dbo].[rpt_SKU_Rate] --SELECT * FROM [worknp].[dbo].[BP_SKU_Rate]
SELECT
S.RegionID,
--S.[Month],
S.TypeTRT,
S.Brand,
S.ProdId,
cast(S.Qty as float)/cast(SA.Qty as float) [Rate]
FROM #SLS S
JOIN --Общие продажи по бренду в регионе
(
SELECT RegionID, Brand, sum(Qty) [Qty]
FROM #SLS
GROUP BY RegionID, Brand
HAVING sum(Qty) > 0
) SA ON SA.RegionID = S.RegionID and SA.Brand = S.Brand
ORDER BY 2,3
Если я правильно понял
cast(S.Qty as float)/cast(SA.Qty as float)
где cast(SA.Qty as float) всего продажи по бренду в регионе
а S.Qty as float всего продажи в регионе
То бишь собираются продажи по региону в таблицу #SLS
и делят на общую суму продаж в регионе.
|
|
1
VladZ
16.09.22
✎
15:57
|
S.Qty и SA.Qty - ты за буквы деньги платишь? Со второго раза только увидел, что это разные вещи.
|
|
2
Конструктор1С
16.09.22
✎
16:01
|
(1) Г1С такие псевдонимы одобряэ
|
|
3
Конструктор1С
16.09.22
✎
16:14
|
Наглядный пример, как экономия на именах приводит к вызову пояснительной бригады и помощи зала
|
|
4
Kongo2019
16.09.22
✎
16:23
|
(1) Это не я, это в наследство досталось
|
|
5
АНДР
16.09.22
✎
17:12
|
(0) S.Qty - продажи конкретного товара (ProdId) в разрезе производителя (Brand) и региона (RegionID).
Запрос даёт (процентное, если домножить на 100) распределение проданных товаров внутри производителя в разрезе регионов.
|
|
6
Курцвейл
16.09.22
✎
18:13
|
Запрос лучше еще раз поместить во временную таблицу. Если использовать временные таблицы, так по полной :)
|
|
7
Курцвейл
16.09.22
✎
18:14
|
(6) Точнее речь о подзапросе который именован SA
|
|
8
Said_We
16.09.22
✎
18:40
|
(0) Так в чем вопрос-то?
"помогите въехать..." - что нужно сделать и что не понятно.
Ну и встречный вопрос: Что за версия SQL? Если какая-то свежая, то зачем тут джоин?
|
|
9
Said_We
16.09.22
✎
18:43
|
(0) "а S.Qty as float всего продажи в регионе" - нет. Это какая-то запись при этом в разрезе бренда тоже.
Запрос должен показать долю продаж конкретной записи к общему числу продаж по Региону + Бренд.
|
|
10
Said_We
16.09.22
✎
18:45
|
(0) "INSERT INTO" не только показать, но и ...
|
|
11
Said_We
16.09.22
✎
18:47
|
HAVING sum(Qty) > 0 не понятно зачем, если на это потом ещё тут и делят.
cast(S.Qty as float)/cast(SA.Qty as float)
Если ноль, то по связи будет NULL. На что делить будем.
|
|
12
Said_We
16.09.22
✎
19:48
|
К (11)
SELECT CAST(NULL as float) вернёт NULL.
SELECT 3.14 / CAST(NULL as float) тоже вернёт NULL
|
|
13
АНДР
17.09.22
✎
10:31
|
(11) Если по в регионе не было продаж данного бренда, то JOIN отсечет этот разрез из результата.
|
|
14
TormozIT
гуру
17.09.22
✎
12:41
|
Как (0) связан с 1С?
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший