Créer une requête SQL dynamique dans un dataset avec SSRS

Dans SSRS les champs utilisés dans un objet tableau, ou tout objet d’affichage sont liés à la base de données grâce à un data set qui es lui même le résultat d’une requête SQL. Ce dataset est rattaché à une data source qui rend possible une connexion à la base de données ou au cube OLAP afin de restituer les données. La restitution des données rend possible la création de rapports statiques grâce à des requêtes figées ou des rapports dynamiques. 

Afin de tirer le meilleur parti de ces requêtes et rendre possible uniquement l’affichage de la sélection des données que l’utilisateur souhaite voir comme en faisant des filtres sur une année, un produit ou un client particulier. Il est obligatoire d’implémenter un maximum de fonctions dynamique dans les rapports.En plus de cela, l’utilisation conjointe de plusieurs paramètres permet d’affiner la sélection des données.

 

Comment écrire une requête SQL dynamique avec Reporting Services?

La solution la plus facile à maintenir et à faire évoluer est la suivante :

 

SELECT *
FROM TABLE1
WHERE CHAMPS = PARAMETERS!PARAMETER2.VALUE

 

Au préalable le paramètre PARAMETERS!PARAMETER2.VALUE doit êtreévalué en fonction d’un premier paramètre visible et sélectionné à l’intèrieur d’une liste de choix par l’utilisateur au moment ou il devra exécuter le rapport, comme suit : Dans les propriétés expression du paramètre PARAMETER2, insérer un code comme tel :

=IIF(Parameters!Test.value = "Valeur","CONDITION1", "CONDITION2")

 

Il est préférable d’utiliser une solution comme celle-ci-dessus plutôt que d’utiliser une deuxième solution avec une syntaxe comme celle-ci, qui écrirait en dur les deux paramètres dans l’expression de la requête :

IF PARAMETERS!PARAMETER.VALUE = UNEVALEUR
SELECT * FROM TABLE1 WHERE CHAMPS = CONDITION1
ELSE
SELECT * FROM TABLE1 WHERE CHAMPS = CONDITION2

 

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*