Requête imbriqué [Débutant] [Résolu]

- - Dernière réponse :  Charles-Etienne Guimond - 5 déc. 2014 à 21:58
Bonjour,
J'ai un grand problème à écrire mon code vb.net, ado.net ou SQL je me perd un petit peu dans les termes. Toutefois, mon petit problème est au niveau de mon écriture dans le programme VB.NET lorsque je désire écrire une requête imbriquer vers ma base de donnée. Mon expression est la suivante :
....
Dim requete As String
requete = "SELECT Nom FROM Client WHERE (#NAS = (SELECT #NAS from AV))"
....
Je désire afficher le nom de mes clients qui possède un produit AV. Le #NAS est la clé primaire de ma table client et c'est avec cette clé que je lie cette table avec AV. Le tout me semble parfait, sauf que VB.net m'écrit toujours ce message d'erreur lors de l'envoie :
...
Erreur de syntaxe (opérateur absent) dans l'expression « (#NAS = (SELECT #NAS from AV)) ».
...
Merci d'avance pour votre aide.
Afficher la suite 

2 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Bonjour,
De la lecture :
http://www.1keydata.com/sql/sqljoins.html
-
J'ai lu la partie qui me concerne(Inner Join) seulement, on dirait que les versions ne concorde pas. Je ne peux pas utiliser les formes que le site me propose.
-
De plus, je ne sais pas pourquoi mais ma version de VB ne reconnait pas les caractère '.' dans cette formulation de requête
Commenter la réponse de ucfoutu
Messages postés
16039
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 octobre 2019
88
0
Merci
Bonjour,

Ici #NAS est une valeur :
WHERE (#NAS = ...)

Et ici c'est une colonne :
SELECT #NAS from AV


Y a comme un hic !

Remarque : je ne connais pas VB mais en SQL le # est considéré comme le début d'un commentaire...
La confiance n'exclut pas le contrôle
-
J'ai malheureusement aucune réponse a mon problème, je suis ultra débutant dans ce domaine et je bûche complètement sur ça présentement. J'essais seulement de comparer les #NAS des deux tables afin que chaque concordance me sorte le nom du client associé au #NAS
KX
Messages postés
16039
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 octobre 2019
88 -
Pour moi le problème premier vient du # car puisque c'est considéré comme un commentaire ta requête s'arrête en plein milieu.

SELECT Nom FROM Client WHERE (#NAS = (SELECT #NAS from AV))
> KX
Messages postés
16039
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 octobre 2019
-
J'ai changer ma clé primaire et un nouveau message d'erreur apparait....

Cette sous-requête peut retourner au plus un enregistrement.

Je suis grandement désolé mais je suis vraiment perdu car les notions apprise dans mon cours ne me semble pas assez pousser pour ce genre de problématique.
KX
Messages postés
16039
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 octobre 2019
88 -
Quand tu fais un
SELECT
ça peut te renvoyer 0, 1 ou plusieurs résultats. Or avec un
=
tu ne peux comparer qu'1 et 1 seul résultat... D'où le message d'erreur.

Soit tu mets un
IN
à la place du
=
soit tu fais une jointure comme te le proposais ucfoutu
> KX
Messages postés
16039
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 octobre 2019
-
EUREKAAAAA,

Je vous remercierai jamais assez !

Au plaisir de ne jamais se reparler Hahaha ! (Façon de parler)
Commenter la réponse de KX