#sql #sql-server-2005
#sql #sql-server-2005
Вопрос:
SELECT
*
FROM
(
SELECT
abcfiles.dbo.diary.BOOKNO,
abcfiles.dbo.BOOKINGS.PARTY,
abcfiles.dbo.BOOKINGS.DEPART,
abcfiles.dbo.BOOKINGS.DEP7,
abcfiles.dbo.BOOKINGS.BOOKED,
abcfiles.dbo.BOOKINGS.BOOK7,
abcfiles.dbo.BOOKINGS.APRICE,
abcfiles.dbo.BOOKINGS.PAID,
abcfiles.dbo.DIARY.ADDED,
abcfiles.dbo.DIARY.ADDED7,
abcfiles.dbo.DIARY.TEXT,
ROW_NUMBER() OVER(PARTITION BY abcfiles.dbo.BOOKINGS.BOOKNO ORDER BY abcfiles.dbo.diary.ADDED DESC) AS RowNum
FROM
abcfiles.dbo.BOOKINGS
INNER JOIN abcfiles.dbo.DIARY ON abcfiles.dbo.BOOKINGS.BOOKNO = abcfiles.dbo.DIARY.BOOKNO
WHERE
(
abcfiles.dbo.BOOKINGS.PAID IS NULL
) OR
(
abcfiles.dbo.BOOKINGS.PAID = 0
)
) t
WHERE
t.RowNum = 1
END
Причина, по которой я продолжаю писать abc-файлы, заключается в том, что мне нужна моя хранимая процедура, хранящаяся в другой базе данных.
Комментарии:
1. Я бы посоветовал вам использовать псевдоним таблицы. Кроме того, похоже, что это часть какого-то другого кода (оператор END не является частью SELECT). Вы уверены, что ошибка не в другой строке кода?
2. Сообщение 4104, уровень 16, состояние 1, Процедура unpaidbookings, строка 15, состоящий из нескольких частей идентификатор «dbo. РЕЗЕРВИРОВАНИЯ. Не удалось привязать BOOKNO «.
3. Это не говорит о том, что ЗАКАЗЫ — это столбец… вы уверены, что BOOKNO существует как столбец в таблице?
4. База данных abcfiles может быть настроена с учетом регистра, и в этом случае все это могут быть правильные имена, но неправильный регистр для работы
Ответ №1:
Используйте псевдонимы ( t
это уже был псевдоним).
SELECT * FROM (
SELECT
b.BOOKNO, b.PARTY, b.DEPART, b.DEP7, b.BOOKED, b.BOOK7, b.APRICE, b.PAID,
d.ADDED, d.ADDED7, d.TEXT,
ROW_NUMBER() OVER(PARTITION BY b.BOOKNO ORDER BY d.ADDED DESC) AS RowNum
FROM abcfiles.dbo.BOOKINGS as b
INNER JOIN abcfiles.dbo.DIARY as d ON b.BOOKNO = d.BOOKNO
WHERE (b.PAID IS NULL)
OR (b.PAID = 0)) t
WHERE t.RowNum = 1
as
Ключевое слово необязательно.
Счастливого использования SQL.