1

我有以下查询(这是由tablevalued函数返回)Rownumber()在报告中未报告?

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 - 层次结构

回答

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中使用场!RowNumber.Value,而不是建立在ROWNUMBER()在SSRS功能,可以得到不同的结果。我怀疑这是你的问题虽然)

+0

是的,我使用Field!RowNumber.Value ...我想,也许问题是ClientId类型是hierarchyId。你可以请检查一下hierarchyid吗? – user194076

+0

返回数据类型是RETURNS TABLE btw。 – user194076

+0

我希望你是对的,HierarchyID是问题,与RowNumber()无关。只是注释掉ClientHid来测试。我没有HierarchyID方便的表格:似乎你可以比我更快地测试。 –