IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Modulo dans un SELECT avec Alias ou Sans


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Points : 19
    Points
    19
    Par défaut Modulo dans un SELECT avec Alias ou Sans
    Bonjour

    J'ai une requête que je n'arrive pas à exprimer,
    X est un nombre à définir d'unité voulu (ex 20 lunettes)
    j'ai un champ Nbr_Lot_En_Cours (ex 5 lunette par lot)

    Je souhaite savoir s'il est possible de ne faire qu'un achat du même lot, quand celui-ci n'a pas de reste par exemple.

    requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM MA_TABLE_DE_LOT
    WHERE (X % Nbr_Lot_En_Cours = 0)
    "erreur division par 0 impossible".
    Si je le met dans un SELECT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * , (X % Nbr_Lot_En_Cours = 0) AS LotPossible
    FROM MA_TABLE_DE_LOT
    WHERE (LotPossible = 't')
    "Erreur : La colonne "lotpossible" n'existe pas
    Pourtant pour cette dernière, en retirant la clause WHERE, j'ai bien le resultat voulu dans la colone lotpossible avec des 't' et des 'f'

    Aurriez vous une idée ?

    Merci

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Probablement avec un CASE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case when X % Nbr_Lot_En_Cours = 0 then 'OK' else 'NOK' end as LotPossible
    Et une sous-requête

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Points : 19
    Points
    19
    Par défaut
    Bonjour

    c'est exactement ce que j'ai fait.

    en ajoutant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT * 
    case when lotpossible = 0 then 'OK' else 'NOK' 
    end AS LotPossible
    FROM 
    (
    SELECT 
    (X % Nbr_Lot_En_Cours) AS lotpossible
    FROM MA_TABLE_DE_LOT
    WHERE Nbr_Lot_En_Cours > 0
    ) AS MA_Table1
    Pour la division par 0 impossible j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE Nbr_Lot_En_Cours > 0
    Alors qu'aucun lot n'est à 0.. mais bon

    Merci pour la réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/06/2010, 03h13
  2. [AJAX] test dans un select avec onchange
    Par stomerfull dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/01/2009, 16h08
  3. Utilisation de select avec un formulaire sans bouton!
    Par solaar dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/01/2009, 17h06
  4. [Noobie]Perdu dans un SELECT avec un 'OR'
    Par bigltnt dans le forum Débuter
    Réponses: 7
    Dernier message: 25/07/2007, 16h40
  5. Selection avec la souris dans une zone de texte
    Par GESCOM2000 dans le forum IHM
    Réponses: 8
    Dernier message: 11/02/2006, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo