Correction requete

amedtiap Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention   -
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

Froulik Messages postés 3779 Date d'inscription   Statut Membre Dernière intervention   948
 
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
tapion76 Messages postés 3775 Date d'inscription   Statut Membre Dernière intervention   870
 
+1 Froulik :D
0
Froulik Messages postés 3779 Date d'inscription   Statut Membre Dernière intervention   948
 
merci à toi tapion :o)
0
tapion76 Messages postés 3775 Date d'inscription   Statut Membre Dernière intervention   870
 
Du coup je suis en dessous :(
0
amedtiap Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
je voulais si c possible avoir des astuces,des conseils ........

et merci quand meme
0
tapion76 Messages postés 3775 Date d'inscription   Statut Membre Dernière intervention   870
 
Oracle c'est une base SQL non ?
0
amedtiap Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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
jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716
 
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
amedtiap Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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
jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716
 
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
amedtiap Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci mais ect ce que c'est possible
0
jee pee Messages postés 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716
 
on doit pouvoir y arriver, quand on maitrise sql, en triturant de multiples sous-requetes ;-)
0