IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSRS Discussion :

[SSRS][2k5] En SQL, comment passer les valeurs d'un paramètre multi-value ?


Sujet :

SSRS

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut [SSRS][2k5] En SQL, comment passer les valeurs d'un paramètre multi-value ?
    Bonjour,

    Dans l'onglet Données, j'ai une source SQL-Server. J'ai une requête avec un paramètre @MonParametre. Quand je clic sur le point d'exclamation, je vois Paramètres De La Requête et je peux donner une valeur au paramètre pour tester ma requête. Je voudrais passer plusieurs valeurs, comme si c'était un paramètre multi-value. J'ai essayé avec valeur1,valeur2 mais il n'y a aucune ligne retournée, alors qu'avec valeur1 tout seul j'ai des lignes.

    En SQL dans SSRS, comment passer les valeurs d'un paramètre multi-value ?

    a+, =)
    -=Clement=-

  2. #2
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Essayes avec un IN @Parametre, j'ai un vague souvenir la-dessus (bon ok c'est vague mais bon)

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Merci,
    Citation Envoyé par Reskibil Voir le message
    Essayes avec un IN @Parametre, j'ai un vague souvenir la-dessus (bon ok c'est vague mais bon)
    En effet, dans la zone Critère j'ai bien mis dans la ligne correspondante et la colonne Filter : IN (@monParametre). J'ai l'impression que lorsqu'on donne une valeur1,valeur2 à l'exécution de la requête il considère que la valeur est "valeur1,valeur2" d'un bloc, au lieu de parser la chaîne pour en faire deux valeurs. Pour l'instant je me débrouille en testant les multivalue dans l'onglet Aperçu.

    a+, =)
    -=Clement=-

    Configuration : BIDS 2005

  4. #4
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Attention, à titre d'information, le paramètre multi-value passe correcteemnt si l'on interroge une base SQL avec un select (directement dans le dataset SSRS) avec un IN (@Parametre). Il va correctement passer toutes les valeurs comme il faut.

    Par contre, si tu utilise une procédure stockée, ça devient beaucoup plus compliqué.
    Alexandre Chemla - Consultant MS BI chez Masao

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par Jinroh77 Voir le message
    Attention, à titre d'information, le paramètre multi-value passe correcteemnt si l'on interroge une base SQL avec un select (directement dans le dataset SSRS) avec un IN (@Parametre). Il va correctement passer toutes les valeurs comme il faut.

    Par contre, si tu utilise une procédure stockée, ça devient beaucoup plus compliqué.
    Je n'y arrive pourtant pas (cf images jointes)

    Comment tu fais ?

    a+, =)
    -=Clement=-

    Config : BIDS 2005
    Images attachées Images attachées    

  6. #6
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Pour la valeur de ton paramètre, tu n'as pas besoin de mettre les quotes ' autour des valeurs, sinon il va les convertir en strings qui seront alors mal interprétés.
    Alexandre Chemla - Consultant MS BI chez Masao

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Merci,
    Citation Envoyé par Jinroh77 Voir le message
    Pour la valeur de ton paramètre, tu n'as pas besoin de mettre les quotes ' autour des valeurs, sinon il va les convertir en strings qui seront alors mal interprétés.
    Avec ou sans quotes, j'obtiens le même résultat à quelques quotes près (cf images jointes)

    Je suis toujours preneur d'une marche à suivre pour passer plusieurs valeurs à un paramètre ! Pour résumer, le fait de cocher Valeurs Multiples dans Rapport / Paramètres Du Rapport ne semble avoir aucun effet sur l'onglet Data.

    a+, =)
    -=Clément=-

    Configuration : BIDS 2005
    Images attachées Images attachées    

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    Bon, ça va peut être pas t'aider mais j'ai reproduit ton problème.
    Je ne sais pas comment le résoudre mais ce que je peux te dire, c'est que lorsque je fais un preview de mon rapport, cela fonctionne parfaitement... Donc, pour tester ta query, tu essaie avec une valeur de paramètre simple et le test avec paramètre multivaleurs, tu le fais en preview.

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Merci,
    Citation Envoyé par psychokwax Voir le message
    Bon, ça va peut être pas t'aider mais j'ai reproduit ton problème.
    Je ne sais pas comment le résoudre mais ce que je peux te dire, c'est que lorsque je fais un preview de mon rapport, cela fonctionne parfaitement... Donc, pour tester ta query, tu essaie avec une valeur de paramètre simple et le test avec paramètre multivaleurs, tu le fais en preview.
    C'est ce que je fais (cf mon 2eme post) Je laisse la question ouverte, à tout hasard.

    a+, =)
    -=Clement=-

    Configuration : BIDS 2005

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Points : 146
    Points
    146
    Par défaut
    Slt,
    Je sais que c'est un peu tard mais j'ai été confronté à ce sujet. Donc voici une ébauche de résultat qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    declare @MaVar as varchar(max)
    Set @MaVar = '''' + replace('123,456', ',', ''',''') + ''''
     
    select @MaVar -- optionnel, permet de voir comment se comporte la variable une fois passée dans la moulinette du REPLACE
     
     
    Execute ('
    Select *
    	From MaTable
    		Where Condition1 = ''x'' AND Condition2 = ''y'' AND
    			Condition3 IN ('+@MaVar+') 
    	Group by Condition1, Condition2 --si nécessaire
    		')
    Attention, dans ce code, il n'y a que des quotes ( ' ) pas de guillement ( " ).
    en espérant que c'est pas trop tard

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/07/2008, 17h19
  2. Réponses: 2
    Dernier message: 16/01/2008, 16h16
  3. [ASE 12.0.3] Comment tester les valeurs nulles (T-SQL)
    Par msomso dans le forum Adaptive Server Enterprise
    Réponses: 7
    Dernier message: 02/01/2008, 09h07
  4. Réponses: 2
    Dernier message: 06/04/2007, 10h26
  5. Réponses: 4
    Dernier message: 11/09/2006, 17h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo