SQL Server 2008 R2 с использованием BIDS для разработки отчета.
У меня есть таблица, и я пытаюсь показать только определенную строку. Возможно, есть лучшие способы сделать это, но я сталкиваюсь с ошибкой с выражением фильтра, и независимо от того, как я выполняю свою первоначальную задачу, я хотел бы понять фильтрацию.
Я начал с выражения фильтра (набор типа «Целое число»):
RowNumber(Nothing) = 1
Это дало ошибку:
Cannot compare data of types System.String and System.Int32.
Я обнаружил, что решение этой проблемы состоит в том, чтобы изменить 1 на «= 1», поскольку 1 оценивается как строка.
Итак, у меня тогда было:
RowNumber(Nothing) = =1
Это ничего не изменило, я получил ту же ошибку.
Затем я попытался сделать это с первой частью выражения:
=RowNumber(Nothing) = =1
Это изменило ошибку на проблему развертывания (все еще собирается, что расстраивает):
Error pvInvalidDefinition : The definition of the report '/ReportName' is invalid.
Затем я попытался использовать CInt для RowNumber: CInt(RowNumber(Nothing) = = 1
Затем я могу развернуть его, но ошибка просто изменится на первую:
Cannot compare data of types System.String and System.Int32.
Кажется, что бы я ни пытался здесь, я либо не могу развернуть отчет, либо получаю сообщение об ошибке, что я сравниваю строку с целым числом.
RowNumber возвращает целое число, поэтому похоже, что это должно работать. Я пытался использовать имя набора данных вместо «Ничего», но это не меняет того, что я вижу.
Я понимаю, что есть много способов решить мою первоначальную проблему, но мне любопытно, почему выражение фильтра недопустимо.