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 :

Problème procédure stockée et report builder [2012]


Sujet :

SSRS

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Problème procédure stockée et report builder
    Bonjour à tous,

    J'essaye de construire un rapport basé sur une procédure stockée.
    La procédure stockée fonctionne parfaitement dans le requêteur SQL.

    Par contre lorsque je créé un dataset à partir ce cette procédure, un message d'erreur apparait :
    Nom : Erreur_dataset_storedprocedure.PNG
Affichages : 420
Taille : 6,7 Ko

    Je ne comprend pas comment résoudre cela, malgré mes recherches.

    Je vous envoie le code SQL de l'ALTER de ma procédure stockée, même si je pense que le problème ne vient pas de là.
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    USE [ALLIANCE_Reporting]
    GO
    /****** Object:  StoredProcedure [dbo].[SP_REPORTING_DETAIL_MOYEN_PRODUCTION]    Script Date: 09/06/2014 19:55:30 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Create date: <06/06/2014,,>
    -- Description:	<Retourne le détail des données saisies en CRA des moyens de production,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[SP_REPORTING_DETAIL_MOYEN_PRODUCTION]
    	-- Add the parameters for the stored procedure here
    	@code_ag varchar(5),
    	@annee integer,
    	@mois integer=NULL,
    	@code_categorie varchar(5)=NULL,
    	@code_sous_categorie varchar(5)=NULL,
    	@code_activite varchar(5) = NULL
     
    AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     
        -- Insert statements for procedure here
     
    	--On fait un dernier select pour supprimer les lignes inutiles.
    	Select
    		an_R,
    		mois_R,
    		code_agence_R,
    		lib_moyen_production,
    		analytique,
    		code_sous_categorie_R,
    		code_categorie_R,
    		code_activite_R,
    		sum(cout) as COUTTOT_R,
    		sum(NB_HEURE_PROD) as NB_HEURE_PROD_R,
    		sum(NB_HEURE_NON_PROD) as NB_HEURE_PROD_R
     
    		FROM
     
     
    			(-- on créé les colonnes NB H PROD NB H NON PROD
    			select an as an_R,
    			mois as mois_R,
    			code_agence as code_agence_R,
    			lib_moyen_production,
    			analytique,
    			code_type as code_sous_categorie_R,
    			code_famille as code_categorie_R,
    			code_activite as code_activite_R,
    			COUT,
    			CASE WHEN code_oper not in ('PREN','DEPL') THEN NB_H ELSE 0 END as NB_HEURE_PROD,
    			CASE WHEN code_oper  in ('PREN','DEPL') THEN NB_H ELSE 0 END as NB_HEURE_NON_PROD
     
    						from
    						-- On ramène les données
    						(select year(Lug.date_compta) as an,
    							month(Lug.date_compta) as mois,
    							T.code_agence,
    							GT.Nom +' '+GT.prenom as lib_moyen_production,
    							rtrim(ltrim(T.code_agence))+ltrim(rtrim(T.code_analytique)) as analytique,
    							T.code_fonction_cra as code_type,
    							'MHU' as code_famille,
    							F.code_activite,
    							LUG.code_oper,
    							sum(LUG.quantite * LUG.cout_unit) as COUT,
    							sum(LUG.quantite) as NB_H
     
    						from sharewood..ligne_ug LUG inner join sharewood..tiers T on T.code_tiers=LUG.code_tiers Inner join sharewood..groupe_tiers GT on GT.code_groupe_tiers=T.code_groupe_tiers inner join sharewood..fonction F on F.code_fonction = T.code_fonction_cra
    						where LUG.code_type_tiers in ('MEN','TAC')  and code_unite ='H' 
    							and year(Lug.date_compta) =@ANNEE 
    							and T.code_agence=case when @code_ag ='TOUTE' then T.Code_agence else @code_ag end
    							and month(date_compta)=case when @mois is null then month(date_compta) else @mois end
    							and F.code_activite=case when @code_activite is null then F.code_activite else @code_activite end
    							and T.code_fonction_cra=case when @code_sous_categorie is null then T.code_fonction_cra else @code_sous_categorie end
    						Group by year(Lug.date_compta),
    							month(Lug.date_compta),
    							T.code_agence,
    							GT.Nom +' '+GT.prenom,
    							rtrim(ltrim(T.code_agence))+ltrim(rtrim(T.code_analytique)),
    							T.code_fonction_cra,
    							F.code_activite,
    							LUG.code_oper
     
    						UNION ALL
     
    						select 
    							year(Lug.date_compta) as an,
    							month(Lug.date_compta) as mois,
    							MAT.code_agence,
    							MAT.libelle,
    							ltrim(rtrim(MAT.code_agence))+ltrim(rtrim(MAT.code_analytique)),
    							MAT.code_type_materiel,
    							TMAT.code_famille_materiel,
    							MAT.code_activite,
    							LUG.code_oper,
    							sum(LUGMAT.quantite) as NB_H,
    							sum(LUGMAT.cout_unit*LUGMAT.quantite) as COUT
     
    							From
    								sharewood..ligne_ug_materiel LUGMAT inner join sharewood..materiel MAT on LUGMAT.code_materiel=MAT.code_materiel
    								Inner join sharewood..ligne_ug LUG on LUG.code_ligne_ug=LUGMAT.code_ligne_ug
    								inner join sharewood..type_materiel TMAT on TMAT.code_type_materiel=MAT.code_type_materiel
    							WHERE year(lug.date_compta)=@ANNEE  
    								and LUG.code_agence=case when @code_ag='TOUTE' then LUG.code_agence else @code_ag end 
    								and month(lug.date_compta)=case when @mois is null then month(lug.date_compta) else @mois end
    								and TMAT.code_famille_materiel=case when @code_categorie is null then TMAT.code_famille_materiel else @code_categorie end
    								and MAT.code_type_materiel = case when @code_sous_categorie is null then MAT.code_type_materiel else @code_sous_categorie end
    							GROUP BY
    								year(Lug.date_compta),
    								month(Lug.date_compta),
    								MAT.code_agence,
    								MAT.libelle,
    								ltrim(rtrim(MAT.code_agence))+ltrim(rtrim(MAT.code_analytique)),
    								MAT.code_type_materiel,
    								TMAT.code_famille_materiel,
    								MAT.code_activite,
    								LUG.code_oper
     
    								) PRODUCTION) SYNTHESE
     
    			group by an_R,mois_R,code_agence_R,code_sous_categorie_R,lib_moyen_production, analytique,code_categorie_R,code_activite_R
     
    END
    En vous remerciant par avance pour votre aide.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Solution
    Je me répond à moi-même.

    Je me suis aperçu qu'en créant un dataset partagé avec ma procédure stockée et en construisant un rapport avec ce dataset partagé, je n'avais plus de message d'erreur; mais par contre il y avait 2 champs au nom identique...

    En corrigeant ma procédure stockée, cela a fonctionné.
    L'erreur venait donc de ma procédure stockée qui contenait par erreur 2 champs ayant le même nom; parfaitement géré dans le requêteur SQL; mais pas du tout par report builder.
    sum(NB_HEURE_PROD) AS NB_HEURE_PROD_R,
    sum(NB_HEURE_NON_PROD) AS NB_HEURE_PROD_R

    alors que je voulais écrire
    sum(NB_HEURE_PROD) AS NB_HEURE_PROD_R,
    sum(NB_HEURE_NON_PROD) AS NB_HEURE_NONPROD_R

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème procédure stockée sur un report
    Par jonnix dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/12/2010, 12h21
  2. Problème procédure Stockée + VBS
    Par gothard dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/02/2007, 16h39
  3. Réponses: 2
    Dernier message: 20/09/2006, 14h38
  4. problème procédure stockée
    Par hamham dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/04/2006, 12h33
  5. Problème procédure stockée + trie
    Par an_merle dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/02/2006, 22h58

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