Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 13 October 2021 14:10

neskuik01
Participant assidu
Date d'inscription: 16 Feb 2015
Messages: 199

condition clause where

Bonjour,

j'ai une table avec plusieurs champs integer comportants chacun une année : an_deb_chantier et an_control.
je cherche à faire une selection toute basique des chantiers ayant débuter avant 2015 donc les inspections ont été réalisées après cette date ET ou l'on possède bien une date de début de chantier.

j'ai donc :

Code:

SELECT * FROM chantier WHERE an_deb_chantier is not null  AND an_deb_chantier < 2015 AND an_control > 2015

et en retour je recois bien un résultat mais qui me retourne des an_deb_chantier qui sont null, supérieure ou inférieur à 2015. Bref pas du tout le retour attendu.

(j'arrive à filtrer en utilisant des CTE mais bon je pense qu'il y'a plus simple).

Est-ce-que c'est possible sans passer par une cte de définir une hierarchie  des conditions ?

Hors ligne

 

#2 Wed 13 October 2021 15:51

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1159

Re: condition clause where

Salut,

etes vous sûr que la requête que vous avez posté est bien celle que vous avez lancé ?
Celle-ci me parait correcte, à part que le test de nullité est inutile (c'est possible que postgres ré-écrive la requête avant de l'executer).

Est-ce-que c'est possible sans passer par une cte de définir une hierarchie  des conditions ?


Il n'y a pas de hiérarchie dans ce que vous désirez faire, toutes les conditions doivent être satisfaites.
Pouvez poster la cte qui marche ?

En ligne

 

#3 Mon 18 October 2021 16:59

neskuik01
Participant assidu
Date d'inscription: 16 Feb 2015
Messages: 199

Re: condition clause where

tumasgiu a écrit:

Salut,

etes vous sûr que la requête que vous avez posté est bien celle que vous avez lancé ?
Celle-ci me parait correcte, à part que le test de nullité est inutile (c'est possible que postgres ré-écrive la requête avant de l'executer).

Est-ce-que c'est possible sans passer par une cte de définir une hierarchie  des conditions ?


Il n'y a pas de hiérarchie dans ce que vous désirez faire, toutes les conditions doivent être satisfaites.
Pouvez poster la cte qui marche ?


La CTE décompose juste la clause where :

Code:

with test as (
select * 
from chantier
WHERE an_deb_chantier is not null
)

select * from test where an_deb_chantier < 2015 AND an_control > 2015;

Bon du coup j'ai continué avec des cte

Hors ligne

 

#4 Mon 18 October 2021 21:27

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1159

Re: condition clause where

Quelle version de postgresql ?

sur une 9.6 pas de problème :

http://sqlfiddle.com/#!17/9dad8/7

En ligne

 

Pied de page des forums

Powered by FluxBB