Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу обратиться на CTE3 / 10 сообщений из 10, страница 1 из 1
08.09.2021, 08:13
    #40095859
Adlet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
ВОТ РАБОЧИЙ СКРИПТ

; WITH CTE1 AS
(
SELECT *,(([Количество (в базовых ед#)]/[Кол-во])*100)
AS Dolya,
ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])
AS cm,
floor(ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])/[Длина])
AS Face,
floor(([ГЛ#ПОЛКИ]/[глубина ])*(ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])/[Длина]))
AS QuantFace,
floor([ГЛ#ПОЛКИ]/[глубина ])
AS GlubinaFace,
([ДЛ#ПОЛКИ]*[ГЛ#ПОЛКИ])
AS [Площадъ полки,cm2],
floor([Длина]*[глубина ])
AS [Площадь товара, см2],
(([Количество (в базовых ед#)] / sum([Количество (в базовых ед#)]) over(partition by [АДРЕС ]))*100) AS [Доля товара ед., %],
(([Сумма (упр#)] / sum([Сумма (упр#)]) over(partition by [АДРЕС ]))*100) AS [Доля товара тг., %]
FROM [dbo].[БД$]

),CTE2 AS
(
SELECT *,
(([Доля товара ед., %] + [Доля товара тг., %]) / 2 + IIF([Доля товара ед., %] > [Доля товара тг., %], [Доля товара тг., %], [Доля товара ед., %])) / 2 AS [Ср.доли, %]
FROM CTE1
)
(
SELECT *, [Ср.доли, %] / sum([Ср.доли, %]) over(partition by [АДРЕС ]) as [Доля на полке, %] ,
(([Ср.доли, %] / sum([Ср.доли, %]) over(partition by [АДРЕС ]))*([ДЛ#ПОЛКИ])) as [Кол-во фэйсов на полке, см],
ceiling((([Ср.доли, %] / sum([Ср.доли, %]) over(partition by [АДРЕС ]))*([ДЛ#ПОЛКИ]))/[Длина]) as [Кол-во фэйсов на полке, ед]


FROM CTE2
)
),
CTE3 AS

НЕ МОГУ ОБРАТИТЬСЯ НА CTE3, ЧТО ДЕЛАТЬ ?
ПОМОГИТЕ ПОЖАЛУЙСТА
...
Рейтинг: 0 / 0
08.09.2021, 08:19
    #40095860
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
Adlet
ВОТ РАБОЧИЙ СКРИПТ
он не рабочий
...
Рейтинг: 0 / 0
08.09.2021, 09:38
    #40095870
Adlet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
use PLANOGRAMM
SELECT *,(([Количество (в базовых ед#)]/[Кол-во])*100)
AS Dolya,
ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])
AS cm,
floor(ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])/[Длина])
AS Face,
floor(([ГЛ#ПОЛКИ]/[глубина ])*(ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])/[Длина]))
AS QuantFace,
floor([ГЛ#ПОЛКИ]/[глубина ])
AS GlubinaFace,
([ДЛ#ПОЛКИ]*[ГЛ#ПОЛКИ])
AS [Площадъ полки,cm2],
floor([Длина]*[глубина ])
AS [Площадь товара, см2],
(([Количество (в базовых ед#)] / sum([Количество (в базовых ед#)]) over(partition by [АДРЕС ]))*100) AS [Доля товара ед., %],
(([Сумма (упр#)] / sum([Сумма (упр#)]) over(partition by [АДРЕС ]))*100) AS [Доля товара тг., %]
FROM [dbo].[БД$]

WHERE [Длина] IS NOT NULL



; WITH CTE1 AS(
SELECT *,(([Количество (в базовых ед#)]/[Кол-во])*100)
AS Dolya,
ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])
AS cm,
floor(ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])/[Длина])
AS Face,
floor(([ГЛ#ПОЛКИ]/[глубина ])*(ceiling(([Количество (в базовых ед#)]/[Кол-во])*[ДЛ#ПОЛКИ])/[Длина]))
AS QuantFace,
floor([ГЛ#ПОЛКИ]/[глубина ])
AS GlubinaFace,
([ДЛ#ПОЛКИ]*[ГЛ#ПОЛКИ])
AS [Площадъ полки,cm2],
floor([Длина]*[глубина ])
AS [Площадь товара, см2],
(([Количество (в базовых ед#)] / sum([Количество (в базовых ед#)]) over(partition by [АДРЕС ]))*100) AS [Доля товара ед., %],
(([Сумма (упр#)] / sum([Сумма (упр#)]) over(partition by [АДРЕС ]))*100) AS [Доля товара тг., %]
FROM [dbo].[БД$]

),CTE2 AS
(
SELECT *,
(([Доля товара ед., %] + [Доля товара тг., %]) / 2 + IIF([Доля товара ед., %] > [Доля товара тг., %], [Доля товара тг., %], [Доля товара ед., %])) / 2 AS [Ср.доли, %]
FROM CTE1
)
(
SELECT *, [Ср.доли, %] / sum([Ср.доли, %]) over(partition by [АДРЕС ]) as [Доля на полке, %] ,
(([Ср.доли, %] / sum([Ср.доли, %]) over(partition by [АДРЕС ]))*([ДЛ#ПОЛКИ])) as [Кол-во фэйсов на полке, см],
ceiling((([Ср.доли, %] / sum([Ср.доли, %]) over(partition by [АДРЕС ]))*([ДЛ#ПОЛКИ]))/[Длина]) as [Кол-во фэйсов на полке, ед]

FROM CTE2
)
...
Рейтинг: 0 / 0
08.09.2021, 10:09
    #40095879
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
Adlet,

Где-то кто-то уже использовал этот код )))
Не вдаваясь в синтаксис:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
WITH CTE1
     AS (SELECT *, 
                ([Количество (в базовых ед#)] / [Кол-во]) * 100 AS Dolya, 
                CEILING(([Количество (в базовых ед#)] / [Кол-во]) * [ДЛ#ПОЛКИ]) AS cm, 
                FLOOR(CEILING(([Количество (в базовых ед#)] / [Кол-во]) * [ДЛ#ПОЛКИ]) / [Длина]) AS Face, 
                FLOOR(([ГЛ#ПОЛКИ] / [глубина ]) * CEILING(([Количество (в базовых ед#)] / [Кол-во]) * [ДЛ#ПОЛКИ]) / [Длина]) AS QuantFace, 
                FLOOR([ГЛ#ПОЛКИ] / [глубина ]) AS GlubinaFace, 
                [ДЛ#ПОЛКИ] * [ГЛ#ПОЛКИ] AS [Площадъ полки,cm2], 
                FLOOR([Длина] * [глубина ]) AS [Площадь товара, см2], 
                ([Количество (в базовых ед#)] / SUM([Количество (в базовых ед#)]) OVER(PARTITION BY [АДРЕС ])) * 100 AS [Доля товара ед., %], 
                ([Сумма (упр#)] / SUM([Сумма (упр#)]) OVER(PARTITION BY [АДРЕС ])) * 100 AS [Доля товара тг., %]
           FROM dbo.[БД$]),
     CTE2
     AS (SELECT *, 
                (([Доля товара ед., %] + [Доля товара тг., %]) / 2 + IIF([Доля товара ед., %] > [Доля товара тг., %], [Доля товара тг., %], [Доля товара ед., %])) / 2 AS [Ср.доли, %]
           FROM CTE1),
     CTE3
     AS (SELECT *, 
                [Ср.доли, %] / SUM([Ср.доли, %]) OVER(PARTITION BY [АДРЕС ]) AS [Доля на полке, %], 
                ([Ср.доли, %] / SUM([Ср.доли, %]) OVER(PARTITION BY [АДРЕС ])) * [ДЛ#ПОЛКИ] AS [Кол-во фэйсов на полке, см], 
                CEILING((([Ср.доли, %] / SUM([Ср.доли, %]) OVER(PARTITION BY [АДРЕС ])) * [ДЛ#ПОЛКИ]) / [Длина]) AS [Кол-во фэйсов на полке, ед]
           FROM CTE2)
     SELECT *
       FROM CTE3;




И заведите правило - писать с отступами, чтобы было легко читать код.
...
Рейтинг: 0 / 0
08.09.2021, 10:18
    #40095885
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
Oleg_SQL

И заведите правило - писать с отступами, чтобы было легко читать код.

поддерживаю
из уважения к участникам форума стоит хотя бы прогонять код через любой форматтер - например, через http://poorsql.com/
...
Рейтинг: 0 / 0
08.09.2021, 11:00
    #40095897
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
Oleg_SQL
Где-то кто-то уже использовал этот код )))

судя по "[Количество (в базовых ед#)]", - Ablaykhan -а уволили
...
Рейтинг: 0 / 0
08.09.2021, 11:11
    #40095900
Ablaykhan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
court,
Если бы 😂
...
Рейтинг: 0 / 0
08.09.2021, 11:17
    #40095902
Adlet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
court,

Здравствуйте, Олег это колега Абылайхана :)
...
Рейтинг: 0 / 0
08.09.2021, 11:31
    #40095905
Adlet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
Adlet,
коллега*
...
Рейтинг: 0 / 0
08.09.2021, 12:56
    #40095958
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу обратиться на CTE3
Ой, какая прелесть... Кто-то пишет функцию для выгрузки отчёта в Excel? Какая красота. Как давно я этим не занимался.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу обратиться на CTE3 / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]