При попытке выполнить оператор SQL ниже, когда указал на SQL Server Express я получаю сообщение об ошибкеОшибка: идентификатор, который начинается с ... Максимальная длина составляет 128
The identifier that starts with 'Select * FROM AvailabilityBlocks LEFT JOIN Location ON AvailabilityBlocks.LocationID=Location.LocationID WHERE ((AvailabilityBlo' is too long. Maximum length is 128." Error.
SQL код:
SELECT *
FROM
(Resources
LEFT JOIN
[Select *
FROM AvailabilityBlocks
LEFT JOIN
Location ON AvailabilityBlocks.LocationID = Location.LocationID
WHERE
((AvailabilityBlocks.LocationID IN (8, 14, 16, 31, 1, 15, 17, 10, 9, 19, 12, 30, 5, 18, 13, 20, 3, 26, 2, 25, 28, 27, 32, 33)
AND (AvailabilityBlocks.Type = 3 OR AvailabilityBlocks.Type = 4))
OR AvailabilityBlocks.Type = 2)
AND [Begin] < '06-Apr-2015 12:00:00 AM'
AND [Begin] >= '30-Mar-2015 12:00:00 AM'
AND (WeekDay([Begin]) = 2 OR WeekDay([Begin]) = 3
OR WeekDay([Begin]) = 4 OR WeekDay([Begin]) = 5
OR WeekDay([Begin]) = 6 OR WeekDay([Begin]) = 7)]. AS FilteredTable ON Resources.ResourceID = FilteredTable.ResourceID)
LEFT JOIN
EmployeeTypes ON EmployeeTypes.TypeID = Resources.EmployeeType
ORDER BY
RClass, Resources.LastName ASC, Resources.FirstName ASC,
Resources.ResourceID ASC, [AvailabilityBlocks.Begin] ASC,
[AvailabilityBlocks.End] Desc, Location.SubType DESC
Этот SQL отлично работает при выполнении с БД доступа. Может ли кто-нибудь предложить какие-либо предложения?
Заранее спасибо
Попробуйте заменить скобки в этих местах 'LEFT JOIN [..' с круглыми скобками. –
Обратите внимание, что вы не должны делать выбор *, если таблицы имеют одинаковые имена. Выберите столбцы, которые вы хотите увидеть. – TYY
У меня возникла ошибка: идентификатор, начинающийся с '46, 65,29,76,21,13,53,63,26,78,49,79,14,15,54,55,16,17,38 , 80,59,39,62,56,5,6,11,12,35,60,72,34,69,7,8,71,66,47,36,67,43,41,42,44 , 'слишком длинный. Максимальная длина - 128. Но я использовал только круглые скобки в своем коде. В моем списке местоположений есть около 100 идентификаторов местоположения, а после 44 лет он дает ошибку! –