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 |
Partager