Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO  [new]
Kontox
Member

Откуда:
Сообщений: 146
Подскажите , пожалуйста с этим запросом, почему выдает ошибку Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNION , как запрос исправить

+
;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
4 апр 19, 16:40    [21852975]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсивное обобщенное табличное выражение "one" не содержит оператор верхнего уровня UNIO  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36695
Открыть хелп, посмотреть в примерах, как должно выглядеть рекурсивное cte и исправить.
4 апр 19, 16:44    [21852982]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить