我有以下查询(由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
而不是rownumber。 Visual Studio intellisense表示只支持整数,字符串,字符...但是Row_Number函数返回整数!我甚至试图在rownumber上做cast as integer
但仍然没有帮助。有没有人遇到过同样的问题? ClinetHid - HierarchyId
答案 0 :(得分: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使用Field!RowNumber.Value,而不是SSRS中内置的RowNumber()函数,这可能会产生不同的结果。我怀疑这是您的问题。)