powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / View ругается и не сохраняется!
15 сообщений из 15, страница 1 из 1
View ругается и не сохраняется!
    #32018025
Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я создаю View с таким запросом:
SELECT DATE, MIN(ENDDATE) - 1
FROM (SELECT DISTINCT TOP 100 PERCENT V.[date], V1.[date] AS ENDDATE
FROM dbo.Valuta V INNER JOIN dbo.Valuta V1
ON V.[date] < V1.[date]
GROUP BY V1.[date], V.[date]
ORDER BY V.[date]) TEMP
GROUP BY DATE
В окне дизайнера он у меня работает как надо, но при попытке сохранить View ругается:
View definition includes no output columns or no items in the FROM clause.
Как мне быть, ведь запрос работает?
Как сохранить View?
Помогите!
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018027
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT TOP 100 PERCENT DATE, MIN(ENDDATE) - 1
FROM (SELECT DISTINCT TOP 100 PERCENT V.[date], V1.[date] AS ENDDATE
FROM dbo.Valuta V INNER JOIN dbo.Valuta V1
ON V.[date] < V1.[date]
GROUP BY V1.[date], V.[date]
ORDER BY V.[date]) TEMP
GROUP BY DATE

При наличии во View фразы ORDER BY требуетс, чтобы в SELECT обязательно была использована фраза TOP...

PS
По идеи это вам и должно было сообщаться в ошибке
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018031
Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory,спасибо за отклик!
Мне кажется, что эта проблема из-за того, что таблица Temp формируется динамически из подзапроса, а View требует привязки к реальным столбцам таблиц или других View.

View definition includes no output columns or no items in the FROM clause.
Ведь это звучит примерно так:
View определил, что отсутствуют колонки вывода (поля в SELECT) или нет источников в выражении FROM.
Вот.
Сижу, думаю.
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018032
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да поспешил я с TOP 100 PERCENT (невнимательно рассмотрел запрос)

А как собственно вы создаете View ? Помниться Enterprise Manager-е встроенный дизайнер View как раз и не умел работать с вложенными запросами. Надо было создавать View либо в QA через CREATE VIEW ..., либо в EM создавть View вида SELECT * FROM mytable, сохранять его под нужным именем и потом открывать в режиме Properties, а не Design и править текст запроса на нужный.
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018033
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Glory.
Так ведь у него Order by в подзапросе и Top в нем же. Или ты советуешь перенести Top в главный запрос?

2All.
Distinct - подозрительная конструкция. Я не рекомендую ее совмещать в одном select-е вместе с фразой top. Я наблюдал всякие чудеса при различных их комбинациях. Кроме того, не рекомендую совмещать запрос, содержащий фразу distinct с подзапросом, который также содержит такую фразу. На грабли, вызываемые таким совмещением, наткнулся буквально сегодня. Запускаю такой запрос на вставку записей с подзапросом в QA - работает. Сохраняю его без каких-либо корректив в хранимой процедуре - уже не работает. Точнее, не то, чтобы совсем не работает - выдает ошибку нарушения уникальности ключевого поля. Стал прогонять в отладчике - выяснилось, что фраза distinct у подзапроса в хранимой процедуре ломается - делает вид, что ее не существует. Подзапрос вместо 12 записей возвращает несколько сотен. Фраза distinct, включение которой в подзапрос и должно было обеспечить уникальность ключевых полей при вставке записей, будто растворилась в воздухе, отсюда и возникло нарушение уникальности ключевых полей при вставке. Убрал из главного запроса фразу distinct - все заработало (включился distinct подзапроса). Вот такая петрушка на SQL 2000.
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018034
Ilya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Podzapros dolzhen rabotat'.
Ne uveren chto pomozhet, no poprobuy DATE v kvadratnie skobki vziat'. I GROUP BY v podzaprose dumayu ne nuzhen (tam uzhe DISTINCT est' na teh zhe poliah).

SELECT TOP 100 PERCENT temp.[DATE], MIN(temp.ENDDATE) - 1
FROM (SELECT DISTINCT TOP 100 PERCENT V.[date], V1.[date] AS ENDDATE
FROM dbo.Valuta V INNER JOIN dbo.Valuta V1
ON V.[date] < V1.[date]
ORDER BY V.[date]) TEMP
GROUP BY temp.[DATE]
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018035
Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу запрос используя встроенный дизайнер.
В нем запрос, как я уже говорил, работает так как задумано, а сохранять View не хочет.
Glory, что за аббривиатура QA?
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018036
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QA - Query Analyzer
Если встроенный дизайнер, тогда точно - запиши произвольный запрос SELECT * FROM mytable во View с нужным именем, а потом в том же EM на нем на правой кнопке выбири Properties и замени текст запроса на нужный.
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018037
Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory, огромное спасибо за советы!!!
Попробую применить приобретенные знания!
:0)
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018038
Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory, огромное спасибо за советы!!!
Огромное спасибо ВСЕМ!!!!
Попробую применить приобретенные знания!
:0)
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018039
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати - IMHO хорошее предложение от Garya, насчет выноса ORDER во внешний запрос - зачем что-то сортировать в подзапросе, ведь его результат пользователь все рано увидит результат работы внешнего запроса
(а может быть вам ORDER вобще не нужен ? ).
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018040
Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORDER BY уберу, он там действительно ни к чему. Но проблема была все-таки не в нем.
Спасибо.
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018044
Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory, проблема была действительно во встроинном дизайнере!
Поработал ручками через "свойства" - все изумительно работает.
Убрал часть мусора.
Вот вариант:
.........................................................
CREATE VIEW view2
AS
SELECT [date] as StartDate, min(ENDDATE) as EndDate
FROM (SELECT V.[date], V1.[date] AS ENDDATE
FROM dbo.Valuta V INNER JOIN
dbo.Valuta V1 ON V.[date] < V1.[date]) temp1
group by [date]
..........................................................

Еще раз всем спасибо!
Glory, Вам персонально!
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018054
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На будующее: проблема была просто в том что для 2-й колонки не было задано имя, о чем кстати и писалось в сообщении ошибке. Достаточто было бы просто написать первую строчку так:
SELECT DATE, MIN(ENDDATE) - 1 EndDate
...
...
Рейтинг: 0 / 0
View ругается и не сохраняется!
    #32018059
Timur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergSuper.
Спасибо.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / View ругается и не сохраняется!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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