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 10/12/2008 16:34:30

bennkabazz
Membre

problème avec la clause where dans une requete

bonjour tout le monde
je veux créer une vue qui doit calculer la somme des valeurs d'une colonne si les conditions dans la clause WHERE sont bien remplis , j'ai procédé comme ça ;

  create view  mavue (col1,col2) as select col1,sum(col2) from matable where   col 3 = {24 ou 28} or col4= "Z" or  col5 =[1..8 ] or col6="Z"  ;
il plante.

comme vous remarquez  certaines colonnes doivent prendre leurs valeurs dans un ensemble dans la clause where ; c'est à dire je dois comparer mes colonnes de la clause where à cet intervalle là:
24Z01Z  à 24Z08Z  ou  28Z01Z à 28Z08Z
j'ai besoin d'aide svp

Hors ligne

#2 10/12/2008 18:26:50

gleu
Administrateur

Re : problème avec la clause where dans une requete

Il ne plante pas. Mais il est clair que, si on utilise une syntaxe non reconnue, il va renvoyer un message d'erreur.

Essaie plutôt ça

create view  mavue (col1,col2) as select col1,sum(col2) from matable where   col 3 IN (24, 28) or col4= "Z" or  col5 IN (1, 2, 3, 4, 5, 6, 7, 8) or col6="Z"  ;

Par contre, je pense que tu veux des AND, et non pas des OR. Mais difficile à dire comme ça.

Dernière modification par gleu (10/12/2008 18:27:55)


Guillaume.

Hors ligne

#3 11/12/2008 10:51:58

bennkabazz
Membre

Re : problème avec la clause where dans une requete

vous êtes formidable , je voulais exactement le "and" au lieu de "or" , mais je m'etais unpeu mal exprimé ,d'ailleurs  je réformule bien ainsi :
je fais une vue qui doit faire la somme des éléments d'une colonne "toto" en considerant "1" comme valeur de la colonne si ces conditions sont remplis au même moment : col1 IN (24,28) , col2 = "Z" , col3>=1 AND col5<=8 , col4 = 'Z' et considerer "toto" comme "0" au cas où une de ces conditions est fausse à fortiori toutes , cela pour toutes les lignes de ma table et me retourne "somme" , c'est à dire qu'il test toutes les lignes de ma table avant de rétourner somme .
merci beaucoup d'avance et remercie pour la première aide ;

Hors ligne

Pied de page des forums