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

Requêtes PostgreSQL Discussion :

Condition dans ma requête


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 66
    Points
    66
    Par défaut Condition dans ma requête
    Bonjour, je voudrais créer une requête qui vérifie que la date sélectionnée est plus petite qu'une autre. Voici ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    IF
       (SELECT f_expiry_date
       FROM contract
       WHERE contract_id=12) < '2011-12-31'
    THEN
        RETURN 1;
    ELSE
        RETURN 0;
    END IF
    Apparemment, il n’accepte pas le IF de cette façon. Quel est la syntaxe?

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Tu veux faire une requête, une procédure ou une fonction ?

    Pour une requête ceci devrais suffire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    SELECT COUNT(contract_id)
       FROM contract
       WHERE contract_id = 12
        AND f_expiry_date < '2011-12-31'

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT EXISTS(SELECT *
                  FROM   contract
                  WHERE  contract_id=12
                    AND  f_expiry_date < '2011-12-31')
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 66
    Points
    66
    Par défaut
    Le problème, c'est que dans ma première requete, par la suite je comptais remplacer les RETURN par un UPDATE d'une autre table, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    IF
       (SELECT f_expiry_date
       FROM contract
       WHERE contract_id=12) < '2011-12-31'
    THEN
        UPDATE table1 SET...
    ELSE
        UPDATE table2 SET...
    END IF

Discussions similaires

  1. [Requête] Explication sur une condition dans une Requête
    Par jimmymatrix dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/05/2007, 14h34
  2. Condition dans une requête
    Par dimitrios dans le forum Access
    Réponses: 3
    Dernier message: 25/10/2006, 10h32
  3. Condition dans une requête croisée
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 18/10/2005, 10h31
  4. Peut on insérer une condition dans une requête ?
    Par MITCH31 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 22/09/2005, 18h26
  5. Condition dans une requête
    Par fdloisel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2004, 16h55

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