XRushdy Ответов: 1

sql-запрос дает "недопустимое имя столбца"


это мой вопрос:
DECLARE @columns VARCHAR(8000)

SELECT @columns = COALESCE(@columns + ',[' + cast(Date as varchar) + ']',
'[' + cast(Date as varchar)+ ']')
FROM Absence
GROUP BY Date DECLARE @query VARCHAR(8000) SET @query = ' SELECT * FROM (SELECT Name , Code, Section, Date FROM Absence) up PIVOT (COUNT(Code) FOR Date IN (' + @columns + '))  AS p WHERE Section LIKE A ' EXECUTE(@query)


он дает "недопустимое имя столбца "а""

1 Ответов

Рейтинг:
11

Mehdi Gholam

Вы должны разграничить одну кавычку для LIKE:

GROUP BY Date DECLARE @query VARCHAR(8000) SET @query = ' SELECT * FROM (SELECT Name , Code, Section, Date FROM Absence) up PIVOT (COUNT() FOR Date IN (' + @columns + '))  AS p WHERE Section LIKE ''A'' ' EXECUTE(@query)


XRushdy

Большое вам спасибо Мехди голам,
Это работает.
Я пытаюсь решить эту ошибку в течение нескольких дней,но теперь она решена.

Maciej Los

+5

Mehdi Gholam

Спасибо Мацей!

Jamie888

сэр, что делать, если в предложении where есть "WHERE Year(CreateDate) =' +@YEAR+ '", он сказал бы недопустимое имя столбца CreateDate, но я проверил его без каких-либо ошибок.