Bonjour,
Dans une procédure stockée, je reçois une variable varchar qui contient une suite d’ID sous cette forme 3,4,5,6
Je voudrais trouver toutes les enregistrements avec ces ID.
J’ai fait comme ça : (il y a pas une méthode plus correcte ?)
Quand j’exécute, j’obtiens une erreur :
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 ALTER PROCEDURE [dbo].[GestionRetourMaterielEtat] -- Add the parameters for the stored procedure here @PIDDossierTab varchar(300) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here DECLARE @sql AS VARCHAR(255) SET @sql = 'SELECT Saturna.dbo.dossier.NumDossier FROM Saturna.dbo.dossier LEFT JOIN Saturna.dbo.Client_Dossier ON Saturna.dbo.Client_Dossier.IDdossier = Saturna.dbo.dossier.IDdossier LEFT JOIN Saturna.dbo.Adresse_Dossier ON Saturna.dbo.Adresse_Dossier.IDdossier = Saturna.dbo.dossier.IDdossier WHERE Saturna.dbo.dossier.IDdossier IN (' + @PIDDossierTab + ')' EXECUTE (@sql);
Je me suis basé sur ce post pour le requête : http://forums.whirlpool.net.au/archive/928435
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Msg 4145, Level 15, State 1, Line 5 An expression of non-boolean type specified in a context where a condition is expected, near 'Adres'. (1 row(s) affected)
Maintenant, si je retire un des deux LEFT JOIN, j’obtiens bien mes résultats.
Une idée ?
D’avance, merci.
Partager