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
|
ALTER PROCEDURE [dbo].[ComparaisonDePeriode]
@ValeurAffichage nvarchar(200),
@ValeurCompare nvarchar(200),
@Chaine nvarchar(225),
@ChaineFiltre nvarchar(225),
@NomElt nvarchar(25),
@NomValeur nvarchar(25),
@NombreCompare nvarchar(4),
@OperateurComparaison nvarchar(5),
@ChaineHaving nvarchar(25),
@Titre nvarchar(200),
@PeriodeFin int,
@NombrePeriodeCompare int,
@Annee int,
@PeriodeCompare nvarchar(15)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @SqlCommand nvarchar(3000)
declare @SqlCommandMoisArticleQuantite nvarchar(3000)
declare @SqlCommandMoisArticleBeneficeVente nvarchar(3000)
declare @SqlCommandMoisArticleMontantDesQuantite nvarchar(3000)
set @SqlCommandMoisArticleQuantite='SELECT nom+'' (''+CodeArticle+'')'' as Elt,datename(MONTH,dateoperation)+'' ''+cast(case when
MONTH(dateoperation)>'+@PeriodeFin+' then '+@Annee-1+' else '+@Annee+' end as nvarchar) as Periode,sum(V) as V,'''+@ChaineFiltre+''' as
ChaineFiltre,'''+@Titre+''' as Titre,case when MONTH(dateoperation)>'+@PeriodeFin+' then MONTH(dateoperation)-12 else MONTH(dateoperation)
end as NbP from bilan_quantite_general inner join p_article on bilan_quantite_general.codearticle=p_article.code where (clfo=''client'') and
((month(dateoperation) between '+@Periodefin-@NombrePeriodeCompare+13+' and 12) and (year(dateoperation)='+@annee-1+')) or
((month(dateoperation) between 1 and '+@Periodefin+') and (year(dateoperation)='+@annee+')) group by nom+''
(''+CodeArticle+'')'',datename(MONTH,dateoperation)+'' ''+cast(case when MONTH(dateoperation)>'+@PeriodeFin+' then '+@Annee-1+' else '
+@Annee+' end as nvarchar),case when MONTH(dateoperation)>'+@PeriodeFin+' then MONTH(dateoperation)-12 else MONTH(dateoperation)
end' |
Partager