Correction requete

Bonjour ,

j'ai essaye d'effectuer cette requete et je n' y arrive pas en oracle

"Créez une instruction qui affiche chaque poste, le salaire par poste dans chacun des
services 20, 50, 80 et 90, ainsi que le salaire total par poste."

On a la table employees, constituee de :"employee_id","department_id","job_id","salary"

Urgent et merci

3 réponses

  1. Désolé mais CCM ne peut pas répondre favorablement à ta demande.
    Regarde ici :
    https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/

    1
    1. +1 Froulik :D
      0
    2. merci à toi tapion :o)
      0
    3. Du coup je suis en dessous :(
      0
    4. je voulais si c possible avoir des astuces,des conseils ........

      et merci quand meme
      0
  2. Oracle c'est une base SQL non ?
    0
    1. j'ai essayer ceci mais mon probleme c'est que toute les colonnes et lignes sont remplises par les memes informations
      voici le code :

      select distinct emp.job_id as"job",max(distinct a.salary) as"Dept20", max(distinct b.salary) as"Dept50", max(distinct c.salary) as"Dept80", max(distinct d.salary) as"Dept90",sum(distinct( emp.salary))as"Total"

      from employees emp,employees a,employees b,employees c,employees d

      where a.department_id=20
      and b.department_id=50
      and c.department_id=80
      and d.department_id=90

      and emp.job_id in (a.job_id, b.job_id ,c.job_id, d.job_id)

      group by emp.job_id
      0
      1. Modérateur
        Bonjour,

        Une première chose, tu essaies de caser des select en colonnes (les dept20 ...) on peut y arriver mais dans un premier temps tu devrais te concentrer sur l'utilisation normale du sql, ramener des enregistrements en lignes.

        Car avec 5 tables dans le from tu dois avoir droit à un super produit cartésien en nombre de réponses ;-)

        donc from employees doit être suffisant.

        un where department_id in (20,50,80,90) devrait le compléter

        je regrouperais sur job_id, et department_id

        et j'utiliserai max(salary) et sum(salary)
        0
      2. merci mais je cherche a avoir un numéro de département par colonne et quand le poste ne correspond pas au departement la case correspondante soit vide du genre

        | job |dept20 |dept50 |dept80|
        | ad_pres | |20000 | |
        | ad_pres |17000 | | |
        .............

        je cherche ce resultat

        et merci pour ta reponse
        0
      3. Modérateur
        Pour moi tu ne devrais pas essayer de faire cela. Ce n'est généralement pas le sens des exercices sur la base de formation/test Oracle

        le format de la liste devrait être

        job, dept, max, somme

        aaa 20 2000 5000
        aaa 80 3000 8000
        0
      4. ok merci mais ect ce que c'est possible
        0
      5. Modérateur
        on doit pouvoir y arriver, quand on maitrise sql, en triturant de multiples sous-requetes ;-)
        0