Problème de requête TQuery attaquant du DBASE

goloa Messages postés 14 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 7 septembre 2006 - 25 août 2005 à 15:25
goloa Messages postés 14 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 7 septembre 2006 - 26 août 2005 à 09:17
Bonjour à tous

mon problème est la requête suivante :


SELECT DISTINCT cdbase1.rub as rubrique

FROM "CDBASE.DBF" cdbase1

WHERE rub NOT IN(

SELECT rub

FROM

(SELECT cdbase2.route, cdbase2.rub as rubri, COUNT(cdbase2.rub) AS nb_couples

FROM "CDBASE.DBF" cdbase2

GROUP BY rubri, route)

WHERE (nb_couples <> 1))

je sais qu'elle fonctionne puisque je l'ai fabriquée avec SQL+ et testée avec une base test oracle et elle me ramène les résultats escomptés.
Le souci c'est que je la place dans un TQuery de mon application Delphi qui est reliée à une base DBASE. et au débogage ça me plante avec le message suivant :

"Utilisation incorrect du mot-clé.
Element : SELECT
Numéro de ligne : 6."

comment puis je corriger mon erreur ? est ce qu'il y a un nombre limite d'imbrication de SELECT ? Est ce que c'est parce qu'il refuse l'instruction SELECT dans une clause FROM ?

En attendant des réponses je vais essayé d'enregistrer les résultats de la sous requête dans un fichier et de faire appelle à ce fichier dans la requête principale. Enfin je vais essayé je ne suis pas sur que ça fonctionn non plus


respect robustesse

2 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
25 août 2005 à 21:52
As-tu essayé cette requête avec l'explorateur de base de données ou encore avec le module base de données ?

Je soupçonne fort que le moteur de requête ne fasse pas la distinction entre rub et rub : WHERE rub NOT IN(
SELECT rub

Ce serait bien de préciser à quel Rub tu fais allusion.


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
goloa Messages postés 14 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 7 septembre 2006
26 août 2005 à 09:17
Ben j'ai effectivement essayé avec le constructeur SQL c'est plus simple pour tester la requête mais meme en mettant des alias pour les différents "RUB" ça ne compile toujours pas. C'est vraiment le "... FROM (SELECT..." qui ne passe pas j'ai l'impression que le constructeur reclame obligatoirement un fichier apres le FROM.
j'ai mis entre guillemet toute la sous-requête : FROM "(SELECT ... )" et le message d'erreur "Nom de fichier incorrecte" apparait.
Alors j'essaie de trouvé une alternative en fabriquant un fichier dbf temporaire mais ça non plus je ne sais pas le faire!
Comment et où sauvegarder le résultat de la sous requête pour en faire un appel dans la requête principale.


respect robustesse
0
Rejoignez-nous