backdraf
Messages postés1Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention10 juin 2011
-
10 juin 2011 à 10:41
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
15 juin 2011 à 14:36
Bonjour,
J'ai une procedure stockée qui ne correspond pas a ce que je voudrais comme resultat. j'utilise la commande "IN" pour recuperer le resultat d'une liste . Donc si je fais :
AND T1.Agence IN (@Agence) Je n'ai pas le meme resultat que si je fais
AND T1.Agence IN ('Lille','Amiens')
Voici la procedure stockée!
[i]set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[Cout] ( @DateDeb as datetime , @DateFin as datetime , @Agence as char(10))
as
begin
SELECT
max(T1.Région) as Region,
max(T1.Agence) as Agence,
T1.Affaire,
case
when max(T4.[Statut Affaire]) = '2' Then 'Affaire Facturée (Affaire soldée)'
when max(T4.[Statut Affaire]) = '3' Then 'Dossier Archivé (Soldé et réglé)'
end as statut_affaires,
max(convert(char(10),T4.[Ending Date],103)) as Date_Fin,
max(T4.[Description]) as Description,
max(T4.[Type mission]) as mission,
max(T1.[Code Ingénieur])AS Ingenieur,
sum(cast((T1.[Phase A])AS float)) AS Montant_A,
sum(cast((T1.[Phase B complet])AS float)) AS Montant_B,
sum(cast((T1.[Phase C])AS float)) AS Montant_C,
sum(cast((T1.[Phase D])AS float)) AS Montant_D,
sum(cast((T1.[Phase A]+T1.[Phase C]+T1.[Phase D]+T1.[Phase B])AS float)) AS Montant,
max(T3.jours_Prod) as jours_Prod,
cast((sum(T1.[Phase B]) / max(T3.jours_Prod)) as decimal(18,2)) as Cout
FROM dbo.[Societe$Statistiques] T1
left outer join dbo.[Societe$Job] T4
ON T1.Affaire = T4.No_
outer apply (
select
sum(cast(T2.[Présence Réel] as float)) as jours_Prod
from dbo.[Societe$Production Chantier] T2
where T1.Affaire = T2.[Document No_]
and T2.No_ = 'PR'
and T2.[Présence Réel] <> '0'
) T3
WHERE T1.[Date Facture] BETWEEN @DateDeb and @DateFin
AND T1.[Région] = 'NORD' -- Filtre sur la region
AND T1.Agence IN (@Agence) -- Selection de l'agence
AND T4.[Ending Date] <> '01/01/1753'
AND T1.[Type Document] < '2'
AND T4.[Statut Affaire] IN ('2','3')