Procedure stockée avec IN

backdraf Messages postés 1 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 10 juin 2011 - 10 juin 2011 à 10:41
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 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')

group by T1.Affaire
order by T1.Affaire

end
/i

MErci pour votre aide

1 réponse

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
15 juin 2011 à 14:36
Ca ne correspond pas à ce que tu voudrais mais que veux tu ? Quelle est ta question ; ton problème ?
0
Rejoignez-nous