Problème Requete

Problème Requete - SQL/NoSQL - Programmation

Marsh Posté le 20-11-2008 à 14:22:58    

Bonjour,
je suis entrain de créer un formulaire avec une zone de liste déroulante (combobox) pour séléctionner  un nom, et une autre pour séléctionner les prénom. Lors de la validation je passe en paramètres les valeurs de ces deux combobox pour pouvoir constituer une requête après.
 
le principe :  
1. Si je sélectionne que le nom "Dupond" et je ne sélectionne pas le prenom, ma requête doit renvoyer toutes les personnes qui ont comme nom "Dupond".
2. Si je sélectionne que le prenom "stéphane" et je ne sélectionne pas le nom, ma requête doit renvoyer toutes les personnes qui ont comme prenom "stéphane".
3. Si je sélectionne le nom "Dupond" et le prenom "stéphane", ma requête doit renvoyer toutes les personnes qui ont comme nom "Dupond" et comme prenom "stéphane".
 
Le Pb :  
Je n'arrive pas à composer cette requête .
 
Voici ma reqête :  
Select nom, prenom from personnes
where (Nom=#nom# And prenom=#prenom#)
intersect
          Select nom, prenom from personnes
         where
               OR (nom=#nom# and nom is not null)
               OR (prenom="prenom# and prenom is not null)
Order by nom

Reply

Marsh Posté le 20-11-2008 à 14:22:58   

Reply

Marsh Posté le 20-11-2008 à 14:51:57    

help please

Reply

Marsh Posté le 20-11-2008 à 15:56:19    

ben perso je ferais un truc du genre
 
Select personne.nom, personne.prenom
from personne
where personne.nom=#nom# and personne.prenom=#prenom#
 
mais la subtilité est dans tes combobox si tu ne reçois pas de valeur tu places un *
 
Exemple combox 1 avec dupond et combox 2 avec pas de selection tu auras
 
#nom# = dupond
#prenom# = *
 
voilà je crois que ça marche

Reply

Marsh Posté le 20-11-2008 à 16:10:20    

du coup la requête vas essayer de chercher un nom = "Dupond" et un prenom = "*". Et cela ne marchera pas à mois qu'il y ait quelqu'un qui a comme prenom "*"

Reply

Marsh Posté le 20-11-2008 à 16:28:46    

Excuse c'est pas égale mais like
 
where personne.nom like #nom# and personne.prenom like #prenom#
 
#nom# = 'Dupond'
#prenom# = '*'

Reply

Marsh Posté le 20-11-2008 à 16:37:35    

merci pour tes postes, mais je crois que tu n'a pas compri ce que je voulais faire :
On faite  
1 . si je que sélectionne le nom et je ne sélectionne pas le prenom: je doit afficher toutes les personnes qui ont comme nom (#nom#)
2. et si je sélectionne que le prenom je doit afficher toutes les personnes qui ont comme prenom (#prenom#)
3. et si je sélectionne les deux (nom et prenom) je doit afficher toutes les personnes qui ont comme nom (#nom#) ET comme prenom (#prenom#)
 
Exemple :
Dupont stéphne
Dupont marc
Durant jean
toto jean
tata marc
 
Cas 1 : #nom#="Dupont"    #prenom#=""
resultat :
Dupont stéphne
Dupont marc
Cas 2 : #nom#=""    #prenom#="marc"
Dupont marc
tata marc
Cas 3 : #nom#="Dupond"    #prenom#="marc"
Dupont marc
 
 
J'espère que je me fait bien comprendre

Reply

Marsh Posté le 20-11-2008 à 16:41:50    

ben oui j'avais bien compris et ma solution fonctionne essai là
 
l'opérateur * veut dire tout les champs dans le like enfin sous access en tout cas.

Reply

Marsh Posté le 20-11-2008 à 16:43:09    

ah ben voila, non je suis sous oracle

Reply

Marsh Posté le 20-11-2008 à 16:46:36    

je crois que c'est % sous oracle à la place de *

Reply

Marsh Posté le 20-11-2008 à 17:24:19    

Merci, ça marche maintenant.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed