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Ă© ?

#1 Wed 13 October 2021 14:10

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

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: 1226

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 ?

Hors ligne

 

#3 Mon 18 October 2021 16:59

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

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: 1226

Re: condition clause where

Quelle version de postgresql ?

sur une 9.6 pas de problĂšme :

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

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo