PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 05/01/2014 08:42:25

CHR
Membre

[RESOLU] SELECT WHERE avec différents critères

Bonjour à tous, encore une petite question...

J'ai une requête que je récupère dans XL (ODBC + MS-QUERY) et qui fonctionne très bien, simplement j'ai un souci avec la syntaxe du query lorsque je veux récupérer toutes les données, un peu comme si je n'avais pas mis la condition.

Par exemple:
SELECT * from job.job_contrats where job.job_contrats.type_id = '1'

peut devoir devenir
SELECT * from job.job_contrats where job.job_contrats.type_id in('1','12','14')
voire
SELECT * from job.job_contrats
si l'utilisateur veut voir tous les types de contrats

Merci pour l'aide si vous avez une idée.
chr

Dernière modification par CHR (16/01/2014 22:16:11)

Hors ligne

#2 05/01/2014 16:55:39

gleu
Administrateur

Re : [RESOLU] SELECT WHERE avec différents critères

Mais quel est le problème ?


Guillaume.

Hors ligne

#3 06/01/2014 22:23:38

CHR
Membre

Re : [RESOLU] SELECT WHERE avec différents critères

Bonsoir,
Mon problème c'est que je vous ai soumis trois requêtes qui fonctionnent parfaitement individuellement mais que je ne sais pas comment traiter ces 3 cas dans une seule requête et un seul ? (ms-query paramètre).
Plus précisément, je ne sais pas comment transformer ou créer une requête qui EN MEME TEMPS puisse ramener tous les enregistrements (pas de WHERE condition - cas 3), plusieurs filtres (IN(xx) selection - cas 2) et une condition (= cas 1).
Merci pour votre aide et bonne soirée,
chr

Hors ligne

#4 06/01/2014 23:58:12

gleu
Administrateur

Re : [RESOLU] SELECT WHERE avec différents critères

Je ne sais pas, mais c'est plutôt une question d'utilisation de MS Query, logiciel sur lequel je me déclare rapidement pas compétent smile


Guillaume.

Hors ligne

#5 06/01/2014 23:59:53

CHR
Membre

Re : [RESOLU] SELECT WHERE avec différents critères

pas vraiment, ms query permet seulement le "?", la question est de comment transmettre ou poser un multi-query à postgresql. Une seule variable, multiple statements, c'est comment ?

Hors ligne

#6 07/01/2014 00:03:21

gleu
Administrateur

Re : [RESOLU] SELECT WHERE avec différents critères

Va falloir donner plus de détails car je ne comprends pas du tout ce que vous voulez faire.


Guillaume.

Hors ligne

#7 07/01/2014 07:19:09

CHR
Membre

Re : [RESOLU] SELECT WHERE avec différents critères

Si je prends la base tuto, pagila, j'imagine que je souhaite interroger la table film sur le champs rental_duration:

Select title, description, release_year where rental_duration in(?)

le ? est interprété par MS-Query (via Excel) comme un paramètre que l'utilisateur devra saisir. Une fois je veux toutes les lignes où le rental_duration est 3, une autre fois toutes celles où il est 3 et 7 et une autre fois encore toutes les lignes quel que soit la durée.

Comment écrire la requête pour que le "in" renvoie selon le cas, le 1 ou n critères ou toutes les données. Sachant que postgresql attends les multi-arguments entre apostrophe et séparés par des virgules (in('3', '6', '7')), comment coder la requête pour passer ces n arguments de l'interface ou utilisateur et quel argument donner lorsque le in doit contenir toutes les occurrences ?

Je sais, c'est une question de newbie mais... malheureusement j'en suis une !
Et encore une fois merci et chapeau pour votre suivi du forum qui est excellent, ça donne envie de passer le cap de la newbie !!

Hors ligne

#8 07/01/2014 15:14:11

barthymus
Membre

Re : [RESOLU] SELECT WHERE avec différents critères

Je sais pas si j'ai bien compris le problème, mais tu peux éventuellement soumettre un bloc pgSQL. Ce bloc est en fait une série d'instruction (requête) où l'on peut utiliser des variables. Ces variables peuvent être renseignées par la premiere requetes et être utilisée dans une seconde, etc...
Je pense que c'est ce que vous voulez faire non ?
En fonction de la réponse de la première requete, la seconde devra être soit ça soit ça ? Penser alors aux variables. Vous pourrez alors tester le variables (un switch par exemple, ou des if... ) et lancer une seconde requete.

Dites moi ce que vous en pensez smile

Hors ligne

#9 07/01/2014 17:55:43

gleu
Administrateur

Re : [RESOLU] SELECT WHERE avec différents critères

De toute façon, avec IN, vous ne pourrez pas les avoir tous. Vous êtes obligé d'indiquer 1 ou plusieurs éléments dans la liste.


Guillaume.

Hors ligne

#10 16/01/2014 22:15:51

CHR
Membre

Re : [RESOLU] SELECT WHERE avec différents critères

Bonjour,
J'ai eu la réponse à ma question, en fait c'était plutôt du côté XL car il suffisait de mettre plusieurs "variables", soit "?" et de pointer vers la même cellule.
Sinon, pour le ou tout ou le filtre, le développeur m'a donné la proposition suivante (variable=-1 ou variable=x), comme les deux sont retranscrits dans XL comme (variable=? ou variable=?), je pointe les deux ? sur la même cellule et je saisis "-1" lorsque je souhaite ne pas avoir de filtres... coool.
Je mets donc le point en [RESOLU]
Prochain post sur les questions de droits... je ne sais pas si ce sera le lieu où si je trouve un topic plus approprié.
A bientôt ;-)

Hors ligne

Pied de page des forums