Rownumber () не поддерживается в отчетах? - PullRequest
1 голос
/ 03 ноября 2011

У меня есть следующий запрос (это возвращается табличной функцией)

SELECT 
ROW_NUMBER() OVER (ORDER BY ClientHId)  AS RowNumber,
ClientHId,
FirstName,
LastName,
FROM Client

Затем я заполняю свой набор данных в SSRS следующим образом:

select RowNumber,ClientHId,FirstName,LastName from fuctionClient

Все идет нормально.Теперь я пытаюсь использовать столбец RowNumber для сортировки или отображения.Если я пытаюсь выполнить сортировку, в сообщениях об ошибках SSRS будет указано: "unsopported datatype exception" Если я просто попытаюсь показать его в таблице таблиц, он отображает #error вместо числа.Visual Studio intellisense говорит, что поддерживаются только целые числа, строки, символы ...но функция Row_Number возвращает целое число!Я даже пытался сделать cast as integer на число, но все равно не помогает.Кто-нибудь испытывал такую ​​же проблему?ClinetHid - HierarchyId

1 Ответ

0 голосов
/ 03 ноября 2011

Страшное "Не удалось воспроизвести".

Я только что создал пример отчета с запросом, почти идентичным вашему, включая создание UDF с табличным значением и затем вызов его из отчета. Затем я упорядочил группу деталей по полю RowNumber без каких-либо проблем. Я убедился, что я назвал поле RowNumber с тем же именем, которое вы показываете выше.

Как вы объявляете тип данных возврата для этого поля в UDF?

CREATE FUNCTION [dbo].[JamieTestFunction]
(
)
RETURNS 
@Requests TABLE 
(
    -- Make sure your type below is correct:
    [RowNumber] int, 
    [ClientID] int,
    [ClientName] NVARCHAR(200)
)
AS
BEGIN
INSERT @Requests
SELECT 
    ROW_NUMBER() OVER (ORDER BY ClientID)  AS RowNumber,
    ClientID,
    ClientName
    FROM clients

    RETURN;
END

(Кроме того, убедитесь, что везде, где вы указываете RowNumber для использования Field! RowNumber.Value, а не встроенную функцию RowNumber () в SSRS, которая может давать разные результаты. Хотя я сомневаюсь, что это ваша проблема.)

...