2014-08-06 4 views
1

У меня есть запрос, который содержит следующую информацию в начале:Как создать представление с помощью инструкции With?

; With xxx as xxxxx 

Я не могу создать представление с утверждением, и важно, что я держу это утверждение.

Edit: Вот код:

; with numbered as (
Select part,taarich,hulia,mesirakabala, 
rowno = row_number() OVER (Partition by parit order.by taarich) 
From tblMK) 
Select a.rowno-1,a.part, a.Julia,b.taarich,as.taarich_kabala,a.taarich, a.mesirakabala,getdatediff(b.taarich,a.taarich) as due 
From numbered a 
Left join numbered b ON b.parit=a.parit 
And b.rowno = a.rowno - 1 
Where b.taarich is not null 

ответ

2

Поместите with после create view заявления:

create view t2 as 
    with t as (select 1 as col) 
    select * from t; 

Here является SQL Скрипки показывает этот пример.

+0

Не работает: имя столбца не указано для столбца 1 – Bodokh

+0

@ user3238509. , , Я не знаю, откуда эта ошибка. (1) Код в ответе действительно работает. (2) Один столбец имеет соответствующий псевдоним. –

+2

Поскольку вы никогда не размещали оригинальную часть 'create view', скорее всего, вы также не отправили что-то еще, что вызывает ошибку. –

1

Я думаю, что ваша проблема - это отличная точка с запятой. Удалите его и повторите попытку.

В SQL точка с запятой в конце строки является необязательной и обычно опускается.

Оператор WITH, однако, ТРЕБУЕТСЯ предыдущий оператор, если он существует, заканчивается точкой с запятой.

Поскольку большинство людей опускают точки с запятой, многие авторы помещают точку с запятой в начало СЗ, поэтому она закрывает все, что говорилось ранее.

Если ваша СН - первая строка определения вашего вида, точка с запятой пытается прекратить определение вида.

EDIT: ответ на комментарий
Это может занять пару проходов, но следующим шагом будет очистка колонки ROW_NUMBER. заменить вашу
= row_number Ровно() OVER (Partition по PÄRIT order.by taarich)

с
row_number() OVER (Partition по приказу части по taarich) в Ровно

и повторите попытку. Rowno = - это назначение, поскольку rowno - это псевдоним, который я уверен, это то, что вы действительно хотите. И обратите внимание, что это ORDER BY, а не ORDER.BY. И проверить правильность написания «part»/«parit» - это одно и то же поле, написанное по-разному или действительное?

Очистите их и посмотрите, не забивает ли он что-либо еще.

+0

Я удалил точку с запятой. Запрос работает. Но когда я сохраняю, я все равно получаю ошибку столбца, указанную в комментариях ниже другого ответа. – Bodokh

Смежные вопросы