0

Je développe un rapport à l'aide de SQL Server BI Development Studio, lorsque j'essaye de créer une fonction pour additionner les comptes pour StudentID, j'obtiens une erreur "Les fonctions d'agrégation ne peuvent pas être imbriquées dans d'autres fonctions d'agrégat "Somme de compte dans SQL Server BI

ce qui suit est l'expression me sers: - = Somme (Count (champs StudentID.Value)!)

Comment puis-je effectuer un tel calcul?

Répondre

0

Vous pouvez le faire de cette façon

;With CountIds AS 
(
SELECT COUNT(Fields!StudentID.Value) AS CountOfId FROM Table ... 
) 
SELECT Sum(CountOfId) 
FROM CountIds 

Le « Avec » vous donne le comte avec les conditions que vous voulez. Ensuite, vous le SUM.

Mais je ne suis pas sûr que la requête renvoie ce que vous voulez .. (Parce que quand je teste la requête, il me donne le même résultat qu'un COUNT sur toute la table ..) Je pense que vous voulez savoir est "Combien de comtes vous avez".

Si oui, je le ferais à la place.

;With CountId AS 
(
SELECT COUNT(Fields!StudentID.Value) AS CountOfId FROM Table ... 
) 
SELECT TOP 1 ROW_NUMBER() OVER (ORDER BY CountOfId) 
FROM CountIds 
ORDER BY 1 DESC 

Ou simplement:

;With CountId AS 
(
SELECT COUNT(Fields!StudentID.Value) AS CountOfId FROM Table ... 
) 
SELECT COUNT(*) FROM CountIds 
+1

Merci pour les commentaires. Votre réponse est appropriée en tant qu'instruction SQL. Le problème principal que j'ai est de savoir comment l'appliquer en tant que fonction (expression) dans l'interface SQL Server Reporting Service. L'option accepte uniquement les fonctions qui commencent par un signe "=" et non une instruction SQL. –