Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO / 2 сообщений из 2, страница 1 из 1
04.04.2019, 16:40
    #39796676
Kontox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO
Подскажите , пожалуйста с этим запросом, почему выдает ошибку Рекурсивное обобщенное табличное выражение "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
04.04.2019, 16:44
    #39796681
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO
Открыть хелп, посмотреть в примерах, как должно выглядеть рекурсивное cte и исправить.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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