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 :

[Débutant] Réduire une requête


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut [Débutant] Réduire une requête
    Bonjour,
    j'ai une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    select art.ap_code, client.ccp_liblong AS MODEGESTION from article_clipro art, client_tclipro client
     where client.ccp_cle = art.ccp_cle 
     AND art.ap_code in (
    select ap_code from article_clipro
    having count(*)  = 1
    group by ap_code
    )
    union
    select art.ap_code, null AS MODEGESTION from article_clipro art, client_tclipro client
     where client.ccp_cle = art.ccp_cle 
     AND art.ap_code in (
    select ap_code from article_clipro
    having count(*)  > 1
    group by ap_code
    )
    et je me demandais si il n'y avait pas un moyen de réduire un peu tous ca. il s'agit en fait de regarder combien de clipro est associé a un article si il y en a qu'un on recupere son libelle sinon on met NULL

    merci d'avance

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT art.ap_code, DECODE(nb_ap_code,1,MODEGESTION,NULL)
    FROM (
    SELECT art.ap_code, client.ccp_liblong AS MODEGESTION, count() OVER (PARTITION BY ap_code) nb_ap_code
    FROM article_clipro art, client_tclipro client
     WHERE client.ccp_cle = art.ccp_cle )

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    merci
    encore une fois rien a dire

    par contre peut on m'expliquer le OVER (PARTITION BY ...)
    par ce que c'est sur c'est vraiment plus élégant

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    merci je vais potasser un peu

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

Discussions similaires

  1. [2012] [Débutant] Simplifier une requête avec trop de CHARINDEX
    Par ranzoken dans le forum Développement
    Réponses: 10
    Dernier message: 05/01/2015, 15h02
  2. [Débutant] optimiser une requète
    Par tatayet_le_felee dans le forum SQL
    Réponses: 7
    Dernier message: 27/01/2009, 21h35
  3. [Débutant] Boucler une requête
    Par garthalgar dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/12/2006, 16h24
  4. Problème de débutant dans une requête
    Par decour dans le forum Access
    Réponses: 7
    Dernier message: 14/10/2005, 14h17
  5. Réponses: 7
    Dernier message: 30/06/2005, 10h06

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