powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO
2 сообщений из 2, страница 1 из 1
Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO
    #39796676
Kontox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите , пожалуйста с этим запросом, почему выдает ошибку Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNION , как запрос исправить

Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
;with one as (
select
T.cfo,
T.code,
T.customer_name,
T.shop_group_name,
T.sales_volume_name,
T.shop_native_code as shop_code,
T.product_id,
T1.[регулярные поставки план  2019-01],
T1.[регулярные поставки план  2019-02],
T1.[регулярные поставки план  2019-03],
T1.[регулярные поставки план  2019-04],
T1.[регулярные поставки план  2019-05],
T1.[регулярные поставки план  2019-06]

from anyta T
inner join (select 
cfo,customer_name,sales_volume_name,shop_group_name,product_id,shop_native_code,
avg([регулярные поставки план  2019-01]) as [регулярные поставки план  2019-01],
avg([регулярные поставки план  2019-02]) as [регулярные поставки план  2019-02],
avg([регулярные поставки план  2019-03]) as [регулярные поставки план  2019-03],
avg([регулярные поставки план  2019-04]) as [регулярные поставки план  2019-04],
avg([регулярные поставки план  2019-05]) as [регулярные поставки план  2019-05],
avg([регулярные поставки план  2019-06]) as [регулярные поставки план  2019-06]

from one
group by CFO
   ,customer_name
   ,sales_volume_name,
   shop_group_name,
   shop_native_code,
    product_id ) T1 on T.cfo=T1.cfo and T.customer_name=T1.customer_name and T.shop_group_name=T1.shop_group_name and T.product_id=T1.product_id
and T.sales_volume_name=T1.sales_volume_name and T.shop_native_code=T1.shop_native_code
)
, table2 as (
select
T1.cfo,
T1.code,
T1.customer_name,
T1.sales_volume_name,
T1.shop_group_name,
T1.product_id,
T1.shop_native_code as shop_code,
T.[средняя отгрузка 2018-01],
T.[средняя отгрузка 2018-02],
T.[средняя отгрузка 2018-03],
T.[средняя отгрузка 2018-04],
T.[средняя отгрузка 2018-05],
T.[средняя отгрузка 2018-06]

from (select 
 CFO
   ,customer_name
   ,sales_volume_name
   ,shop_group_name
   ,shop_native_code as shop_code,
    product_id,

avg([средняя отгрузка 2018-01]) as [средняя отгрузка 2018-01],
avg([средняя отгрузка 2018-02]) as [средняя отгрузка 2018-02],
avg([средняя отгрузка 2018-03]) as [средняя отгрузка 2018-03],
avg([средняя отгрузка 2018-04]) as [средняя отгрузка 2018-04],
avg([средняя отгрузка 2018-05]) as [средняя отгрузка 2018-05],
avg([средняя отгрузка 2018-06]) as [средняя отгрузка 2018-06]

from table2
group by  CFO
   ,customer_name
   ,sales_volume_name
   ,shop_group_name
   ,shop_native_code
    ,product_id ) T
inner join anyta T1 on T.cfo=T1.cfo and T.customer_name=T1.customer_name and T.shop_native_code=T1.shop_native_code
and T.sales_volume_name=T1.sales_volume_name
 and T.product_id=T1.product_id
 and T.shop_native_code=T1.shop_native_code
)

select 
T1.cfo,
T1.code,
T1.customer_name,
T1.sales_volume_name,
T1.shop_group_name,
T1.shop_native_code as shop_code,
T1.product_id,
[регулярные поставки план  2019-01],
[регулярные поставки план  2019-02],
[регулярные поставки план  2019-03],
[регулярные поставки план  2019-04],
[регулярные поставки план  2019-05],
[регулярные поставки план  2019-06],

[регулярные поставки план  2019-01]*[средняя отгрузка 2018-01] as [регулярные поставки план  2019-01*средняя отгрузка 2018-01],
[регулярные поставки план  2019-01]*[средняя отгрузка 2018-01] as [регулярные поставки план  2019-01средняя отгрузка 2018-01],
[регулярные поставки план  2019-01]*[средняя отгрузка 2018-01] as [регулярные поставки план  2019-01*средняя отгрузка 2018-01],
[регулярные поставки план  2019-01]*[средняя отгрузка 2018-01] as [регулярные поставки план  2019-01 *средняя отгрузка 2018-01],
[регулярные поставки план  2019-01]*[средняя отгрузка 2018-01] as [регулярные поставки план  2019-01 *средняя отгрузка 2018-01],
[регулярные поставки план  2019-01]*[средняя отгрузка 2018-01] as [регулярные поставки план  2019-01 *средняя отгрузка 2018-01]

from table2 T join one T1 
on T.cfo=T1.cfo and T.code=T1.code and T.customer_name=T1.customer_name and T.shop_group_name=T1.shop_group_name and T.product_id=T1.product_id
and T.shop_native_code=T1.shop_native_code
and T.shop_native_code=T1.shop_native_code

...
Рейтинг: 0 / 0
Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO
    #39796681
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открыть хелп, посмотреть в примерах, как должно выглядеть рекурсивное cte и исправить.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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