Bonjour,
Malgré une recherche intensive (google, forum SQL) et l'aide de collègues, je me permet d'ouvrir une nouvelle discussion car je n'arrive pas à avancer et ceux depuis 2 jours ...
J'ai trois table : TBL_VOYAGE, TBL_LOT, TBL_VOYAGE_LOT
Je veux donc récupérer pour chaque LOT son dernier voyage, j'ai donc écrit ma requête suivante :
Bien sûr, je ne test que ma sous-requête :
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 SELECT * FROM TBL_VOYAGE INNER JOIN ... WHERE TBL_VOYAGE.IDVOYAGE = ( SELECT TBL_VOYAGE.IDVOYAGE FROM TBL_VOYAGE INNER JOIN TBL_LOT ON TBL_LOT.IDLOT = TBL_VOYAGE_LOT.IDLOT INNER JOIN TBL_VOYAGE_LOT ON TBL_VOYAGE.IDVOYAGE = TBL_VOYAGE_LOT.IDVOYAGE WHERE TBL_VOYAGE.Date_VOYAGE = ( SELECT MAX(TMI.Date_VOYAGE) AS Date_VOYAGE FROM TBL_VOYAGE AS TMI INNER JOIN TBL_VOYAGE_LOT as TMU ON TMI.IDVOYAGE = TMU.IDVOYAGE WHERE TMU.IDLOT = TBL_LOT.IDLOT) )
Le HExecuteRequete ne sort pas d'erreur, mais lorsque je passe sur le HlitPremier(), ma requête mouline et met 30 min à retourner 0 enregistrements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT TBL_VOYAGE.IDVOYAGE FROM TBL_VOYAGE INNER JOIN TBL_LOT ON TBL_LOT.IDLOT = TBL_VOYAGE_LOT.IDLOT INNER JOIN TBL_VOYAGE_LOT ON TBL_VOYAGE.IDVOYAGE = TBL_VOYAGE_LOT.IDVOYAGE WHERE TBL_VOYAGE.Date_VOYAGE = ( SELECT MAX(TMI.Date_VOYAGE) AS Date_VOYAGE FROM TBL_VOYAGE AS TMI INNER JOIN TBL_VOYAGE_LOT as TMU ON TMI.IDVOYAGE = TMU.IDVOYAGE WHERE TMU.IDLOT = TBL_LOT.IDLOT)
J'ai changé dans ma sous-sous requête par :
Le HexecuteRequete me retourne le message d'erreur "mot ORDER inatendu"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT TOP 1 TMI.Date_VOYAGE FROM TBL_VOYAGE AS TMI INNER JOIN TBL_VOYAGE_LOT as TMU ON TMI.IDVOYAGE = TMU.IDVOYAGE WHERE TMU.IDLOT = TBL_LOT.IDLOT ORDER BY TMI.Date_VOYAGE DESC
J'ai testé en HRequêteDefaut et en HRequeteSansCorrection, pas d'évolution...
Je pense que HFSql (ou Windev) ne sait pas interpréter le WHERE de ma 2nd sous-requête ...
Comment puis-je faire pour avoir les résultats attendu ?
Merci d'avance pour votre aide
Partager