Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Опять про CrossTable - как в результатх вывести текстовые данные?  [new]
AlexJS
Member

Откуда:
Сообщений: 34
всем известная процедура sp_crosstable построила мне такой запрос
SELECT
  [IDX_База],
  max(CASE CAST([СвойствоName] AS nvarchar(100))
        WHEN N'Участник' THEN [СвойствоValue] 
        ELSE 0
      END) AS cУчастник,
  max(CASE CAST([СвойствоName] AS nvarchar(100))
        WHEN N'Цена' THEN [СвойствоValue] 
        ELSE 0
      END) AS cЦена
FROM [T_Свойства предприятий]
group BY [IDX_База]
ORDER BY [IDX_База]

если таблица [T_Свойства предприятий] заполнена только числами, то все в порядке, если же я добавлю текстовое значение то выдается ошибка:

Server: Msg 245, Level 16, State 1, Line 1
Syntax error converting the varchar value 'test!!!' to a column of data type int.

но ведь агрегирующая функция max должна работать с данными int, datetime и varchar! или я чего то не понимаю?

подскажите как быть в случае если нужно в результатах вывести текстовые значения, при условии что данные в таблице не повторяются. IDX_База + СвойствоName + СвойствоValue - только один раз для одного IDX_База.
25 ноя 04, 10:30    [1134324]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить