Bonjour,

j'ai une requête qui contient une sous requête... Elle plante...
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
22
23
24
25
26
27
28
29
30
31
SELECT distinct Fiche_contact.APCLEUNIK,
	Fax.fax_prio as [Priorité],		
	Canal.can_Image1 AS [Canal],		
	Fiche_contact.jour AS [Date],		
	Fiche_contact.heure AS [Heure],		
	Fiche_contact.question AS [Objet],		
	Dossier.dos_nom AS [Dossier],		
	Internot.NomInt AS [Expediteur],		
	Societe.soc_NomCommercial AS [Société],		
	EtatEch.Etat_Image1 as [Etat],		
	Service.Nom_Service as [Equipe affectée],		
	Internot.id_cl as [Code client],		
	SUBSTR(Internot.Code_postal_special,0,2)  as [Département]		
 
 
FROM 	Fiche_contact LEFT OUTER JOIN Canal On Canal.type_canal = Fiche_contact.type_canal,
	Fiche_contact LEFT OUTER JOIN Internot ON Fiche_contact.I0CLEUNIK = Internot.I0CLEUNIK,
	Internot LEFT OUTER JOIN Societe ON Internot.soc_Id = Societe.soc_Id,
	Fiche_contact LEFT OUTER JOIN Dossier ON Fiche_Contact.dos_id = Dossier.dos_id,
	Fiche_contact LEFT OUTER JOIN Fax ON Fiche_contact.Apcleunik = fax.con_id,
	Fiche_contact LEFT OUTER JOIN Service ON Fiche_contact.COCLEUNIK = Service.COCLEUNIK,
	(Select etat_valeur, etat_image1 from Etat where etat_type = 1) as EtatEch
 
WHERE	(Fiche_contact.ech_etat = 0
OR	Fiche_contact.ech_etat = -6
OR	Fiche_contact.ech_etat = -7)
 
AND fiche_contact.cocleunik IN (1,2,5)	
AND fiche_contact.ech_etat = EtatEch.etat_valeur	
 
ORDER BY Priorité DESC, Date DESC, Heure DESC


Quand j'inverse la sous requête, que la met en requête principale, et que je met la requête principale en sous requête, ça fonctionne !!
Est-ce que vous avez une idée du pourquoi ? Parce que franchement, je ne comprends pas T__T

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
select echange.APCLEUNIK,
	echange.fax_prio as [Priorité],		
	echange.can_Image1 AS [Canal],		
	echange.jour AS [Date],		
	echange.heure AS [Heure],		
	echange.question AS [Objet],		
	echange.dos_nom AS [Dossier],		
	echange.NomInt AS [Expediteur],		
	echange.soc_NomCommercial AS [Société],				
	echange.Nom_Service as [Equipe affectée],		
	echange.id_cl as [Code client],		
	echange.Département,
	etat.etat_image1
 
from etat,
(SELECT distinct Fiche_contact.APCLEUNIK,
	Fax.fax_prio,		
	Canal.can_Image1,		
	Fiche_contact.jour,		
	Fiche_contact.heure,		
	Fiche_contact.question,		
	Dossier.dos_nom,		
	Internot.NomInt,		
	Societe.soc_NomCommercial,				
	Service.Nom_Service,		
	Internot.id_cl,		
	SUBSTR(Internot.Code_postal_special,0,2)  as [Département],
	fiche_contact.ech_etat		
 
FROM 	Fiche_contact LEFT OUTER JOIN Canal On Canal.type_canal = Fiche_contact.type_canal,
	Fiche_contact LEFT OUTER JOIN Internot ON Fiche_contact.I0CLEUNIK = Internot.I0CLEUNIK,
	Internot LEFT OUTER JOIN Societe ON Internot.soc_Id = Societe.soc_Id,
	Fiche_contact LEFT OUTER JOIN Dossier ON Fiche_Contact.dos_id = Dossier.dos_id,
	Fiche_contact LEFT OUTER JOIN Fax ON Fiche_contact.Apcleunik = fax.con_id,
	Fiche_contact LEFT OUTER JOIN Service ON Fiche_contact.COCLEUNIK = Service.COCLEUNIK
 
WHERE	(Fiche_contact.ech_etat = 0
OR	Fiche_contact.ech_etat = -6
OR	Fiche_contact.ech_etat = -7)
 
AND fiche_contact.cocleunik IN (1,2,5)
) as echange
 
where etat.etat_valeur = echange.ech_etat