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 :

Appeler 2 dataset dans un autre


Sujet :

SSRS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 45
    Par défaut Appeler 2 dataset dans un autre
    Bonjour,
    Voila j'ai crée 3 dataset:
    -dataset1 qui me calcule le nombre de requetes actives
    -dataset2 qui me calcule le nombre de réclamations
    -dataset3 qui récupére le résultat des 2 dataset.

    Voici ma structure:
    dataset1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    BEGIN DECLARE @NB_REQUETES INTEGER
    SET              @NB_REQUETES = 0 /*  Délai de traitement des requêtes par mois*/ IF (@parame = 0) BEGIN
                              SELECT @NB_REQUETES = count(*)
                               FROM        matable
                               WHERE    condition END 
    ELSE BEGIN
                  SELECT @NB_REQUETES = count(*)
                                                           FROM         matable
                                                           WHERE    condition2
     END
    SELECT     @NB_REQUETES
     END
    dataset2:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    BEGIN DECLARE @NB_CPT INT
    SET              @NB_CPT = 0 IF (@parame = 0) 
    BEGIN
                              SELECT     @NB_CPT = count(*)
                               FROM         matable2
                               WHERE     condition
                                                      END 
    ELSE BEGIN
                SELECT     @NB_CPT = count(*)
                           FROM      matable2                                                       WHERE   condition2
     END
    SELECT    @NB_CPT 
    END
    et mon dataset3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    SELECT synthese.janvier,
    	   result.fevrier, 
    	   result.mars,
    	   result.avril,
    	   result.mai,
                    result.juin,
                    result.juillet,
                    result.aout,
                    result.septembre,
                    result.octobre,
                    result.novembre,
                    result.decembre
    FROM (select	'1' AS number,
                 dataset1(1,@annee, @parame) as Janvier,
                 dataset1(2,@annee, @parame) as Fevrier...
    UNION
            select  '2' AS number,
    	dataset2(1,@annee, @parame) as Janvier,
                 dataset2(2,@annee, @parame) as Février,.....) as result
    ORDER BY number
    Et ça ne marche pas du tout. Comment appeller mes 2 dataset pour calculer le cumul pour chaque mois??

    Séparémment chaque dataset fonctionne mais pour les réunir pour faire mon cumul ça coince.
    Merci de votre aide

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Par défaut
    Salut,

    A ma connaissance, il n'est pas possible de faire appel à des valeurs d'un premier dataset dans un deuxième.

    Personnellement, je te conseillerais plutôt de créer une procédure stockée ou un truc du genre...

    Peut être voudrait-il mieux poser ta question sur le forum sql...

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 45
    Par défaut
    Merci,

    Justement je veux pas créer de procédures stockées car on a mis des droits sur le server SQL qui évite l'exécution des procédures stockées.
    Donc je dois trouver une astuce qui me permetrait d'éviter l'utilisation des procédures.

    Voici mon code sql:
    dataset1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    BEGIN DECLARE @NB_CPT INT
    SET              @NB_CPT = 0 IF (@groupe = 0) BEGIN
                              SELECT     @NB_CPT = count(*)
                               FROM         FilteredIncident AS FilteredIncident LEFT OUTER JOIN
                                                      FilteredContact ON FilteredIncident.contactid = FilteredContact.contactid LEFT OUTER JOIN
                                                      FilteredIncidentResolution ON FilteredIncident.incidentid = FilteredIncidentResolution.incidentid
                               WHERE     (FilteredIncident.new_groupe = 1 OR
                                                      FilteredIncident.new_groupe = 2 OR
                                                      FilteredIncident.new_groupe = 3) AND (YEAR(FilteredIncident.createdon) = @annee) AND (MONTH(FilteredIncident.createdon) = @mois) 
                                                      END ELSE BEGIN
                                                          SELECT     @NB_CPT = count(*)
                                                           FROM         FilteredIncident AS FilteredIncident LEFT OUTER JOIN
                                                                                  FilteredContact ON FilteredIncident.contactid = FilteredContact.contactid LEFT OUTER JOIN
                                                                                  FilteredIncidentResolution ON FilteredIncident.incidentid = FilteredIncidentResolution.incidentid
                                                           WHERE     (FilteredIncident.new_groupe = @groupe) AND (YEAR(FilteredIncident.createdon) = @annee) AND 
                                                                                  (MONTH(FilteredIncident.createdon) = @mois) END
                                                                                      SELECT     @NB_CPT END
    Dataset2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BEGIN DECLARE @NB_REQUETES INTEGER
    SET              @NB_REQUETES = 0  IF (@groupe = 0) BEGIN
                              /* new_groupe 1,2,3 : ADV, BUT, TSU*/ SELECT @NB_REQUETES = count(*)
                               FROM         CLS_MSCRM.dbo.FilteredIncident
                               WHERE     (statecode = 0) AND (statuscode IN (1, 2)) AND (new_groupe IN (1, 2, 3)) AND (YEAR(createdon) = @annee) AND (MONTH(createdon) 
                                                      = @mois) END ELSE BEGIN
                                                           SELECT @NB_REQUETES = count(*)
                                                           FROM         CLS_MSCRM.dbo.FilteredIncident
                                                           WHERE     (statecode = 0) AND (statuscode IN (1, 2)) AND (new_groupe = @groupe) AND (YEAR(createdon) = @annee) AND 
                                                                                  (MONTH(createdon) = @mois) END
                                                                                      SELECT     @NB_REQUETES END
    datasetfinal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT     Janvier, Fevrier, Mars, Avril, Mai, Juin, Juillet, Aout, Septembre, Octobre, Novembre, Decembre
    FROM         (SELECT     '1' AS numero, dataset1(1, @annee, @groupe) AS Janvier, dataset1(2, @annee, @groupe) AS Fevrier, 
                                                  dataset1(3, @annee, @groupe) AS Mars, dataset1(4, @annee, @groupe) AS Avril, 
                                                  dataset1(5, @annee, @groupe) AS Mai,dataset1(6, @annee, @groupe) AS Juin, dataset1(7, 
                                                  @annee, @groupe) AS Juillet, dataset1(8, @annee, @groupe) AS Aout, dataset1(9, @annee, @groupe) 
                                                  AS Septembre, dataset1(10, @annee, @groupe) AS Octobre, dataset1(11, @annee, @groupe) AS Novembre, 
                                                  dataset1(12, @annee, @groupe) AS Decembre
                           UNION
                           SELECT     '2' AS numero, dataset2(1, @annee, @groupe) AS Janvier, dataset2(2, @annee, @groupe) AS Fevrier, 
                                                 dataset2(3, @annee, @groupe) AS Mars, dataset2(4, @annee, @groupe) AS Avril, dbo.fctRequetesActives(5, 
                                                 @annee, @groupe) AS Mai, dataset2(6, @annee, @groupe) AS Juin, dataset2(7, @annee, @groupe) AS Juillet, 
                                                 dataset2(8, @annee, @groupe) AS Aout, dataset2(9, @annee, @groupe) AS Septembre, 
                                                 dataset2(10, @annee, @groupe) AS Octobre, dataset2(11, @annee, @groupe) AS Novembre, 
                                                 dataset2(12, @annee, @groupe) AS Decembre) as systeme
    Merci

  4. #4
    Membre émérite

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Par défaut
    Bonjour,
    Est ce que votre discussion concerne Sql Server ou la brique Business Intelligence de Sql Server. Si c'est la première alternative, je pense que le forum SQL SERVER est mieux placé pour répondre à votre problématique.

Discussions similaires

  1. appeler une fonction dans un autre programme
    Par elghadi_mohamed dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2007, 19h58
  2. Comment appeler une procédure dans une autre unité ?
    Par michel71 dans le forum Langage
    Réponses: 1
    Dernier message: 19/09/2007, 16h27
  3. Appeler une classe dans un autre package
    Par Nasky dans le forum Langage
    Réponses: 6
    Dernier message: 21/02/2007, 16h06
  4. Probleme appel de fct dans une autre classe
    Par crakotte_finance dans le forum C++
    Réponses: 6
    Dernier message: 09/10/2006, 21h22
  5. Appeler une fonction dans un autre cadre !
    Par rich25200 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/11/2005, 13h01

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