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

Откуда:
Сообщений: 109
есть скрипт
;With CTE
AS
(
SELECT shop_code,
product_Id,
doc_date,
t2.outputer,
t3.doc_date AS NextDate
FROM itog00 t1
OUTER APPLY (
SELECT TOP 1 outputer
FROM itog00
WHERE shop_code = t1.shop_code
AND product_id = t1.product_id
AND doc_date > t1.doc_date
AND mark_1 = 1
AND HolidayWeek= 0
ORDER BY doc_date)t2
OUTER APPLY
(
SELECT doc_date
FROM itog00
WHERE shop_code = t1.shop_code
AND product_id = t1.product_id
AND doc_date > t1.doc_date
AND mark_1 = 1
AND HolidayWeek= 1
ORDER BY doc_date)t3
WHERE mark_1 = 1
AND HolidayWeek= 1
ORDER BY doc_date
)



при отработке пишет
Предложение ORDER BY не допускается в представлениях, встроенных функциях, производных таблицах, вложенных запросах и обобщенных табличных выражениях, если вместе с ним не указано предложение TOP, OFFSET или FOR XML.

как исправить ошибку?
3 дек 18, 16:41    [21752230]     Ответить | Цитировать Сообщить модератору
 Re: как исправить ошибку Предложение ORDER BY не допускается в представлениях, встроенных функ  [new]
msLex
Member

Откуда:
Сообщений: 5682
Kontox
есть скрипт
;With CTE
AS
(
SELECT shop_code,
product_Id,
doc_date,
t2.outputer,
t3.doc_date AS NextDate
FROM itog00 t1
OUTER APPLY (
SELECT TOP 1 outputer
FROM itog00
WHERE shop_code = t1.shop_code
AND product_id = t1.product_id
AND doc_date > t1.doc_date
AND mark_1 = 1
AND HolidayWeek= 0
ORDER BY doc_date)t2
OUTER APPLY
(
SELECT doc_date
FROM itog00
WHERE shop_code = t1.shop_code
AND product_id = t1.product_id
AND doc_date > t1.doc_date
AND mark_1 = 1
AND HolidayWeek= 1
ORDER BY doc_date)t3
WHERE mark_1 = 1
AND HolidayWeek= 1
ORDER BY doc_date
)




при отработке пишет
Предложение ORDER BY не допускается в представлениях, встроенных функциях, производных таблицах, вложенных запросах и обобщенных табличных выражениях, если вместе с ним не указано предложение TOP, OFFSET или FOR XML.

как исправить ошибку?

и что вы хотите добиться этим order by?
3 дек 18, 16:44    [21752237]     Ответить | Цитировать Сообщить модератору
 Re: как исправить ошибку Предложение ORDER BY не допускается в представлениях, встроенных функ  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 35833
Убрать order by или добавить что-то из того, что написано в сообщении об ошибке.
3 дек 18, 16:44    [21752238]     Ответить | Цитировать Сообщить модератору
 Re: как исправить ошибку Предложение ORDER BY не допускается в представлениях, встроенных функ  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3003
Думаю, вы TOP (1) в t3 забыли.
3 дек 18, 16:50    [21752248]     Ответить | Цитировать Сообщить модератору
 Re: как исправить ошибку Предложение ORDER BY не допускается в представлениях, встроенных функ  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 5977
Kontox,

TOP 100 PERCENT? Не знаете, что такое справочная документация?
3 дек 18, 17:33    [21752290]     Ответить | Цитировать Сообщить модератору
 Re: как исправить ошибку Предложение ORDER BY не допускается в представлениях, встроенных функ  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27428
Владислав Колосов
TOP 100 PERCENT?
А какой смысл писать TOP 100 PERCENT, что он получит в запросе?
Скорее, ТС забыл написать TOP 1, как ему уже сказали.
3 дек 18, 17:49    [21752317]     Ответить | Цитировать Сообщить модератору
 Re: как исправить ошибку Предложение ORDER BY не допускается в представлениях, встроенных функ  [new]
Kontox
Member

Откуда:
Сообщений: 109
Благодарю всех, разобрался.
3 дек 18, 18:27    [21752345]     Ответить | Цитировать Сообщить модератору
 Re: как исправить ошибку Предложение ORDER BY не допускается в представлениях, встроенных функ  [new]
iap
Member

Откуда: Москва
Сообщений: 46487
Владислав Колосов
Kontox,

TOP 100 PERCENT? Не знаете, что такое справочная документация?
TOP 100 PERCENT начиная с SQL2005 не работает (игнорируется).
Есть, конечно, способ обойти, но в данном случае вообще неясно, зачем это надо.
4 дек 18, 09:31    [21752610]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить