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 :

[Oracle 8i] Présentation des données par lignes


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [Oracle 8i] Présentation des données par lignes
    Bonjour,

    Je suis nouveau sur le forum et j'aimerais que quelqu'un m'aide pour une requete SVP.

    j'ai une table de cette forme:

    Code_DEM Activités Nbre_lits
    1 medecine 5
    1 chirurgie 3
    2 medecine 12
    2 chirurgie 25
    .
    .
    .



    j'aimerais faire une requete sous oracle qui me permet d'avoir ce tableau:


    Code_DEM medecine chirurhie
    1 5 3
    2 12 25


    Merci beaucoup pour votre aide.

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    En effet, vous êtes nouveau.

    Merci de lire les règles du forum , d'être plus clair quant au résultat que vous attendez, éventuellement d'indiquer la version d'Oracle et de mieux présenter vos données pour simplifier le travail des contributeurs.

    Cordialement,
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Requete sous Oracle 8i
    Bonjour,

    Je suis désolé si je n'était pas clair.

    D'abord je me présente:
    Je suis GD (Gestinnaire de donnée ) au sein d'une entreprise et je travaille sous oracle 8i.

    Je suis amené à effectuer une requete qui consiste à transformer une table qui se présente de la manière suivante:

    Code_DEM Activités Nbre_lits
    1 medecine 5
    1 chirurgie 3
    2 medecine 12
    2 chirurgie 25

    à une table de la forme:

    Code_DEM medecine chirurhie
    1 5 3
    2 12 25

    Autrement dis j'ai une table qui pour chaque Code_DEM ,on a l'activité et le nombre de lits Nbre_lits et ce que je veux c'est de transformer cette table de la manière qu'elle est présenté ci_dessus .


    J'espère que j''étais claire cette fois, et je reste à votre disposition pour toute question.

    Merci pour votre aide.

  4. #4
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Vous voulez donc une requête qui retournera autant de colonne que d'activité différentes ? Si c'est le cas, c'est impossible sauf si le nombre d'activité est connu et que chacune des activités est complétée manuellement dans la "partie sélection" des colonnes.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Requete sous Oracle 8i
    merci pour votre reponse.

    Oui le nombre d'activité est connu " chirurgie,MCO, PSychiatrie",est donc la requete doit renvoye le nombre de lits par activité et par Code_DEM , et les activités j'aimerais qu'il soient en colonne.


    Merci.

  6. #6
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Je pars sur votre exemple, complétez avec vos activités.


    1- Créez une table qui possèdent 5 colonnes :
    code_dem
    medecine
    chirurgie
    psychatrie
    mco
    2-créez une permière requête qui insèrent tous les codes demandes et les tous les autres champs à zéro.
    3-créez une seconde requête qui met à jour les demandes de médecine
    4-créez une troisième requête qui met à jour les demandes de chirurgie
    5-créez une quatrième requête qui met à jour les demandes de psychatrie
    6-créez une cinquième requête qui met à jour les demandes de mco

    Si ces résultats doivent être récupéré régulièrement. Créez une procédure stockée qui vide cette nouvelle table et répète les étapes 2 à 6. Cette procédure peut-être longue si la base est volumineuse.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Je ne sais pas si c'est ça ce que vous voulez dire:


    -Apres creation de la table (avec 5 colonne)
    - extraire par activités(pour chaque activité il y a une table de deux colonnes: Code_DEM et nbr_lits)
    -ensuite, concaténer les colonnes.

    merci

  8. #8
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Non, je pensais à mettre à jour la colonne medecine de la table de cinq colonne par la première requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Update nouvelle_table set medecine= 
        (select sum(a.nbr_lit) from ancienne_table a where nouvelle_table.cod_dem = nouvelle_table.cod_dem where a.activites=medecine)
    Je n'ai pas testé, mais c'est un truc dans le style.

    En écrivant cela, je me rends compte qu'on peut le faire en une seule requête...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Update nouvelle_table set 
         medecine= (select sum(a1.nbr_lit) from ancienne_table a1 where nouvelle_table.cod_dem = nouvelle_table.cod_dem where a1.activites='medecine') , 
         set chirurgie = (select sum(a2.nbr_lit) from ancienne_table a2 where nouvelle_table.cod_dem = nouvelle_table.cod_dem where a2.activites='chirurgie'),
         set ....
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  9. #9
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bravo , je crois que cette requete va faire l'affaire.

    merci beaucoup.


    bonne soirée.

  10. #10
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Merci de mettre le tag résolu. Cela évitera aux autres contributeurs de lire ce message inutilement
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  11. #11
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Inutile de faire appel à une table intermédiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Code_DEM, SUM(CASE WHEN Activites = 'chirurgie' then Nbre_lits else 0 end) as chirurgie,
           SUM(CASE WHEN Activites = 'PSychiatrie' then Nbre_lits else 0 end) as PSychiatrie,
           SUM(CASE WHEN Activites = 'MCO' then Nbre_lits else 0 end) as MCO
    FROM laTable
    GROUP BY Code_DEM
    J'ai mis la liste des activités donnée par simof1977, mais comme cette liste change en fonction des messages je ne sais pas quelle est la bonne, sans compter qu'un IdActivite serait le bienvenu.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  12. #12
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    merci.

    Bonne soirée.

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

Discussions similaires

  1. [Dojo] Grid : Charger des données sans passer par un fichier
    Par Johor dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 28/12/2009, 19h34
  2. Réponses: 6
    Dernier message: 29/04/2009, 13h22
  3. Insertion des données sur excel par sql
    Par wagui26 dans le forum Langage SQL
    Réponses: 0
    Dernier message: 15/04/2008, 10h21
  4. Ajouter des données après la dernière ligne non vide
    Par jnmab dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/11/2007, 10h21
  5. [Oracle] Estimation de la taille des données
    Par miloux32 dans le forum Oracle
    Réponses: 6
    Dernier message: 14/11/2006, 13h32

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