Sous-Requête

cs_CecileH Messages postés 9 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 12 septembre 2006 - 2 sept. 2005 à 10:45
cs_CecileH Messages postés 9 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 12 septembre 2006 - 2 sept. 2005 à 16:39
Bonjour




Je lance une requête sur une table foxpro en passant par le driver Microsoft Visual FoxPro Driver.La requête contient une sous-requête. Quand je la teste sous foxpro, elle fonctionne mais si je la lance depuis vb .net j’ai un message : ‘ERROR [42S22][Microsoft][ODBC Visual Foxpro Driver]SQL Column ‘indice' is not found.

Voici la requête :
cmdODBC.commandtext = "select distinct * from table1 a
where trim(a.indice) in
(select left(trim(b.indice),len(trim(a.indice))) from table2 b where b.valide=.T.)"

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 sept. 2005 à 16:26
Salut
Compliquée cette requète.
Quel est l'intérêt du left(trim(b.indice),len(trim(a.indice))) de la sous-requète ?
Cette fonction donne le même résultat que Trim(b.indice) qui suffit largement :
where trim(a.indice) in
(select trim(b.indice) from table2 b where b.valide=.T.)"

D'autre part, si tu compares b.valide avec .T. , il s'agit de texte, donc encadrement avec ' obligatoire :
(select trim(b.indice) from table2 b where b.valide = '.T.')"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_CecileH Messages postés 9 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 12 septembre 2006 1
2 sept. 2005 à 16:39
Salut,

b.valide est un booléen. Sous foxpro, les booléens ont la valeur .F. ou .T..
Pour expliquer ma requête, la colonne indice contient des chaînes de type :
02
02.05
02.05.15
04.05, etc...
Celle-ci me permet de créer une arborescence paramètrable. Je veux par la requête, trouver les lignes avec b.valide à .T. ainsi que les lignes "parentes" (si l'indice 02.05.15 est à .T., je veux trouver les lignes 02 et 02.05. D'où ma requête un peu complexe...
0
Rejoignez-nous