1

次のクエリがあります (これは tablevalued 関数によって返されます)

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"Tablix で表示しようとすると、行番号#errorの代わりに表示されます。Visual Studio の intellisense は、整数、文字列、文字... のみがサポートされていると言います。しかし、Row_Number 関数は整数を返します! 私はcast as integerrownumberでやろうとしていましたが、それでも役に立ちません。誰も同じ問題を経験しましたか? ClinetHid - HierarchyId

4

1 に答える 1

0

恐ろしい「再現できませんでした」。

テーブル値の 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 を指定して、SSRS のビルトイン RowNumber() 関数ではなく、Field!RowNumber.Value を使用することを確認してください。これにより、異なる結果が得られる可能性があります。ただし、これはあなたの問題ではないと思います。)

于 2011-11-03T18:53:45.410 に答える