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

SQL Oracle Discussion :

decose avec condition inferieur ou superieur


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Par défaut decose avec condition inferieur ou superieur
    bonjour à tout le monde.
    Voila je voudrais faire une requête sur un table livraison voila le structure de la table : livraisons(codelivraisonmag, DATEREMISEAUTRANSPORTEUR ,......).

    je voudrais que ma requête m'envoie le count des livraisons dont dateremiseautransporteur >= sysdate-1 et ceux dont dateremiseautransporteur < sysdate-1.
    en faite j'ai fait cette requête qui me donne le résultat voulu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select 'REMIS J et J-1' lib, count(codelivraisonmag) nbr
    from livraisons_magasin 
    where DATEREMISEAUTRANSPORTEUR >= sysdate-1
    union
    select 'REMIS AVANT J-1' lib, count(codelivraisonmag) nbr
    from livraisons_magasin 
    where DATEREMISEAUTRANSPORTEUR < sysdate-1
    est ce que il y a une moyenne de faire cette requête sans faire union. genre une seul requête avec decode!
    merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Oui case remplace decode avantageusement pour ce genre de cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT
        case when DATEREMISEAUTRANSPORTEUR < sysdate-1
          then 'REMIS AVANT J-1'
          else 'REMIS J et J-1'
        end as lib,
        count(codelivraisonmag) nbr
    FROM livraisons_magasin
    group by
        case when DATEREMISEAUTRANSPORTEUR < sysdate-1
          then 'REMIS AVANT J-1'
          else 'REMIS J et J-1'
        end

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Par défaut
    Merci beaucoup pour ta réponse.

  4. #4
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Sinon avec le decode, on peut utiliser la fonction SIGN
    qui renvoie :
    - -1 si le nb est inferieur à 0
    - 0 si le nb est inferieur = 0
    - 1 di le nb est superieur à 0
    et l'appliquer sur une différence de date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT decode (SIGN(dateremise - sysdate),-1,'REMIS AVANT J-1' ,'REMIS J et J-1' ) lib, count(codelivraisonmag) nbr
    FROM livraisons_magasin

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/06/2004, 14h51
  2. Sélection multi table avec condition
    Par iuz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/05/2004, 15h04
  3. ALTER VIEW avec condition
    Par yan77 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2004, 17h22
  4. Index avec conditions
    Par marhnix dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/03/2004, 10h48
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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