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

Langage SQL Discussion :

Optimisation des vues SQL sous Oracle


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Points : 47
    Points
    47
    Par défaut Optimisation des vues SQL sous Oracle
    Bonjour,

    N'ayant pas pu créer un tableau dans la fenètre des question, je décrit ma question dans le PDF ci-joint


    Merci pour votre aide
    Images attachées Images attachées

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Vous pouvez le faire en une seule requête, en faisant un pivot.
    Un exemple ici (page 1) :
    http://www.developpez.net/forums/d87...ation-requete/

    D'autres exemples un peu partout, c'est une question très récurrente sur ce forum.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Points : 47
    Points
    47
    Par défaut
    Merci pour votre aide.
    Je viens de regarder l'exemple mais je ne vois pas que je peux l'utiliser car dans mon cas je dois mettre une condition 'OR' entre les CODE_PRODUIT en plus du group by et de la condition sur le TYPE établissement.

    Pourriez vous me donner le(s) lien sur les autres exemples

    Merci d'avance

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Je ne vois pas de contre indication.
    Je vous montre le début de votre requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_patrimoine,
           sum(case when code_produit like 'AF___' and type_etablissement = 'MY' then 1 end)       as nb_bien_immo_my,
           sum(case when code_produit like 'AF___' and type_etablissement = 'MY' then montant end) as total_bien_immo_my,
    ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Points : 47
    Points
    47
    Par défaut
    Merci beaucoup,

    ça fonctionne maintenant

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Je vous remercie pour votre aide et mon problème est résolu à 90%.
    Il me reste un petit souci qui est le suivant.
    Ma requete est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sum(case 
      when CODE_SOUSFAM_PRODUIT IN('AB101','AB102' ,'AB103','AB104' ,'AB201' ,'AB202','AB203' ,'AB204','AB401' ,'AB402','AB403') 
          AND type_etablissement = 'AUTRE' 
        then MONTANT_PREST 
    end)   AS ENC_AUTRE_BIEN_CONC,
    J'ai un seul code produit (CODE_SOUSFAM_PRODUIT = 'CR100') que je souaite soustraire au lieu de faire la somme.
    Auriez vous une idée sur comment puis je faire


    Merci d'avance

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Algèbre, niveau collège :
    Soustraire un nombre, c'est additionner son opposé :
    A - B = A + (-B)

    Ajoute un WHEN et prend la valeur opposée de la colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sum(case 
      when CODE_SOUSFAM_PRODUIT IN('AB101','AB102' ,'AB103','AB104' ,'AB201' ,'AB202','AB203' ,'AB204','AB401' ,'AB402','AB403') 
          AND type_etablissement = 'AUTRE' 
        then MONTANT_PREST 
      WHEN CODE_SOUSFAM_PRODUIT = 'CR100'
        THEN - MONTANT_PREST
    end)   AS ENC_AUTRE_BIEN_CONC,
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Points : 47
    Points
    47
    Par défaut
    Merci beaucoup pour votre aide.
    ça m'a beaucoup aidé

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/10/2013, 16h38
  2. Initiation à l'optimisation de requêtes SQL sous ORACLE
    Par Vincent Rogier dans le forum Contribuez
    Réponses: 12
    Dernier message: 30/09/2011, 14h09
  3. Réponses: 0
    Dernier message: 15/10/2010, 21h48
  4. Optimisation de requetes SQL sous oracle
    Par santana2006 dans le forum Oracle
    Réponses: 5
    Dernier message: 28/08/2006, 19h26
  5. Recuperationd des Vues Interbase sous Delphi
    Par Andry dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/07/2004, 12h09

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