1

J'ai la requête suivante (Ceci est retourné par la fonction tablevalued)Rownumber() non-importé dans les rapports?

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

Je mon jeu de données peuplent SSRS comme ceci:

select RowNumber,ClientHId,FirstName,LastName from fuctionClient

Jusqu'à présent, si bon. Maintenant, j'essaie d'utiliser la colonne RowNumber pour le tri ou l'affichage. Si j'essaye de trier, les erreurs de SSRS indiquent: "unsopported datatype exception" si j'essaye juste de l'afficher dans le tablix il affiche #error au lieu de rownumber. Visual Studio intellisense indique que seuls les entiers, les chaînes, les caractères ... sont supportés. mais la fonction Row_Number renvoie un entier! J'essayais même de faire cast as integer sur rownumber mais n'aide toujours pas. Est-ce que quelqu'un a connu le même problème? ClinetHid - HierarchyId

Répondre

0

Le redouté "Impossible de reproduire."

Je viens de créer un exemple de rapport avec une requête presque identique à la vôtre, y compris la création d'une fonction UDF à valeur de table, puis l'appel à partir du rapport. J'ai ensuite ordonné le groupe de détail par le champ RowNumber sans aucun problème. Je me suis assuré que j'ai appelé le champ RowNumber par le même nom que vous montrez ci-dessus. Comment déclarer le type de données de retour pour ce champ dans le fichier UDF?

Comment déclarer le type de données de retour pour ce champ dans le fichier 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 

(Aussi, assurez-vous que chaque fois que vous spécifiez le RowNumber à utiliser le terrain! RowNumber.Value, pas la fonction intégrée RowNumber() dans SSRS, ce qui peut donner des résultats différents. Je doute que ce soit votre problème cependant.)

+0

Ouais, j'utilise Field! RowNumber.Value ... Je pense, peut-être que le problème est que le type ClientId est hierarchyId. Pouvez-vous s'il vous plaît vérifier avec hierarchyid? – user194076

+0

Le type de données de retour est RETURNS TABLE btw. – user194076

+0

Je suppose que vous avez raison, que le HierarchyID est le problème, rien à voir avec RowNumber(). Il suffit de commenter le ClientHid pour tester. Je n'ai pas de table avec un ID de HierarchyID: il semble que vous puissiez tester plus vite que je ne peux. –

Questions connexes