Pièce jointe 621478
bonjour est-ce quelqu'un peut maider pour cet exercice avec les requetes?
Version imprimable
Pièce jointe 621478
bonjour est-ce quelqu'un peut maider pour cet exercice avec les requetes?
Bonjour,
Oui, pas mal de monde sur ce forum peut t'aider, mais certainement pas faire l'exercice à ta place.
Montres nous donc ce que tu as fait, décris nous tes points de blocage, et nous pourrons te donner des pistes.
Tatayo.
1)2)Code:
1
2 select SUM(To_char(temps.dateheure,'yyyy/mm')), temps.codeAnalitique from temps;
3)Code:
1
2
3
4 select Interrimaire.prenom,mission.NnHeureTot from Interrimaire,mission,poste,entreprise where Interrimaire.IntId=mission.IntId and poste.posteId=mission.posteId and entreprise.EntId=poste.EntId;
4)Code:
1
2
3
4
5 select temps.codeAnalitique, count(Interrimaire.nom) from Interrimaire,temps,mission where interrimaire.IntId=mission.IntId and mission.missionId=temps.missionId group by temps.codeAnalitique having count(Interrimaire.nom)>10;
Code:
1
2
3
4
5 select profil.NiveauScolair, AVG(Interrimaire.age) from Interrimaire,poste,profil where profil.profilId=poste.profilId and profil.profilId=Interrimaire.profilId and poste.typePoste='stagaire' group by profil.NiveauScolair;
5)Code:
1
2
3
4
5 select Interrimaire.age,Interrimaire.nom from Interrimaire,profil,poste where profil.profilId=poste.profilId and profil.profilId=Interrimaire.profilId group by Interrimaire.age,Interrimaire.nom having Interrimaire.age=max(Interrimaire.age);
Bonjour,
Déjà une remarque: tu peux dire à ton prof de ma part que les jointures s'écrivent avec l'opérateur JOIN depuis "pas mal" d'années.
Il serait tant qu'il s'y mette !
Par exemple:
Devient:Code:
1
2
3
4
5 select Interrimaire.prenom,mission.NnHeureTot from Interrimaire,mission,poste,entreprise where Interrimaire.IntId=mission.IntId and poste.posteId=mission.posteId and entreprise.EntId=poste.EntId;
C'est tout de suite plus lisible.Code:
1
2
3
4
5
6
7
8
9 select Interrimaire.prenom,mission.NnHeureTot from Interrimaire inner join mission on Interrimaire.IntId=mission.IntId inner join poste on poste.posteId=mission.posteId inner join entreprise on entreprise.EntId=poste.EntId
Sinon je pense que tu as inversé les deux premières requêtes…
Pour la 1 (qui est la réponse à la 2 :) ), il te manque un GROUP BY.
Pour les autres, tu ne nous dis pas sur quel point précis tu bloques.
Tatayo.
P.S. pense au balises CODE (le # dans la barre d'outils) pour encadrer les requêtes, comme je l'ai fait dans ma réponse.
et pour les autres requetes est-ce correcte?
1: Non
2: Non
3: Non.
4: A priori oui (mais il y a une petite erreur dans l'exercice : STAGE dans la description, STAGIAIRE dans la question)
5: Non
Et hop, deuxième essai, mais en utilisant JOIN pour les jointures ;)
Bonjour,
Alors que la norme est de souligner les clefs primaires et de suffixer les clefs étrangères par le symbole #, l'énoncé suffixe les PK avec un symbole * et souligne les FK :aie:. Remarque à formuler auprès de votre enseignant.
Les jointures s'écrivent avec l'opérateur JOIN, ça permet de distinguer ce qui ressort de la jointure de ce qui ressort de la restriction. Et dans certains cas, les jointures écrites dans la restriction (WHERE) pénalisent les performances.
Tatayo a donné des exemples.
De plus, il est plus confortable d'utiliser des alias de tables plutôt que de donner leur nom in extenso, par exemple :
Code:
1
2
3
4
5
6
7
8 select T1.colonne1 , T2.colonneX , T1.colonne2 , [...] from ma_table as T1 inner join autre_table as T2 on T2.colonne1=T1.colonne1 where [...]