saide_a Ответов: 1

Неправильный синтаксис около ключевого слова 'как'.


всем привет
У меня есть проблема в моем sql запросе
когда я использую
(select MsgTable.ID, MAX(MsgTable.Time) as t from MsgTable group by MsgTable.ID)

Я получаю правильный ответ
но когда я использую
(select MsgTable.ID, MAX(MsgTable.Time) as t from MsgTable group by MsgTable.ID) as G

Я получаю следующую ошибку
Msg 156, Level 15, State 1, Line 12
Incorrect syntax near the keyword 'as'.

Я хочу использовать 'G' в операторе JOIN
пожалуйста, помогите мне разобраться в этом ,

Что я уже пробовал:

(select MsgTable.ID, MAX(MsgTable.Time) as t from MsgTable group by MsgTable.ID) As G

1 Ответов

Рейтинг:
5

OriginalGriff

Выньте "как" после внутреннего выбора:

SELECT a.X, b.Y from MyTable a
JOIN (SELECT ID, x AS Y FROM MyTable) B
ON a.ID = b.ID


saide_a

это не работает для меня

OriginalGriff

"это не работает для меня", вероятно, самый бесполезный отчет о проблеме, который мы получаем - и мы получаем его много. Она ничего не говорит нам о том, что происходит или когда это происходит.
Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали.
Расскажите нам, что вы сделали, чтобы это произошло.
Сообщайте нам о любых сообщениях об ошибках.

Покажите нам, что именно вы напечатали!

saide_a

что значит 'Моя_таблица' это значит? а также Б во второй строке?
Я хочу получить ответ на этот вопрос
Выберите Д.[номер],Д.[жидкости],Д.[код],д.[Время] от MsgTable как Д
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
(выберите MsgTable.ID, MAX(MsgTable.Время) из группы MsgTable по MsgTable.ID) как G
Д. Время = Время г. и Д. ИД = ИД г.
Порядок Д.[номер],Д.[время]

saide_a

то, что я попробовал в вашем предложенном запросе:
Выберите Д.[номер],Д.[жидкости],Д.[код],д.[Время] от MsgTable Д
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
(выберите MsgTable.ID, MAX(MsgTable.Время) из группы MsgTable по MsgTable.ID) G
Д. Время = Время г. и Д. ИД = ИД г.
Порядок Д.[номер],Д.[время]
и ошибка
Для столбца 2 графы " G " не было указано ни одного столбца.

OriginalGriff

Ну да.
Что ты пытаешься сделать?
Подумайте о ваших входных данных, о том, как они соотносятся, и о том, что именно вы хотите получить в качестве выходных данных. У вас нет никакого столбца "время" в ваших результатах G, и вы не используете ничего из своего внутреннего выбора в своем результирующем наборе!