Bloqué sur un exercice en SQL
Bonjour à tous,
je bloque sur une partie d'un exercice
voici le sujet:
Pièce jointe 206699
Ecrire les deux requêtes :
1) une liste indiquant le nom et la ville de l'organisation, le nom et le prenom de l'etudiant ainsi que la dte du contrat. Elle sera triée par nom d'organisation et par date de contrat.
2) une liste des organisations ayant signé plus de 5 contrats indiquant le nom de l'organisation et le nombre de contrats.
Pour la 1) j'ai fait :
Code:
1 2 3 4 5 6 7
| Select o.nom, o.ville, e.nom, e.prenom, c.dateContrat
From contrat c
Inner join organisation o
On c.idContrat=o.idContrat
Inner join etudiant e
On c.idContrat = e.idContrat
Order by o.nom, c.dateContrat |
Pour la 2) j'ai 2 solutions
Code:
1 2 3 4 5 6
| Select o.nom, count(*) as nbContrats
From organisation o
Inner join contrat c
On o.idOrg = c.idContrat
Group by o.nom
Having count(*) > 5 |
ou
Code:
1 2 3 4 5
| Select o.nom, nbContratsOrg
From organisation o
Inner join contrat c
On o.idOrg = c.idContrat
where nbContratsOrg > 5 |
voilà une correction serai la bien venu :D
Merci !
Bloqué sur un exercice en SQL
Bonjour,
oui, désolé j'ai oublié de joindre le schéma relationnel :oops:
à vrai dire je l'est fais sans 8O
le voici :
Pièce jointe 206714
je rectifie donc les codes :
pour la 1) :
Code:
1 2 3 4 5 6 7
| Select o.nom, o.ville, e.nom, e.prenom, c.dateContrat
From contrat c
Inner join organisation o
On c.id=o.id
Inner join etudiant e
On c.id = e.id
Order by o.nom, c.dateContrat |
pour la 2) :
Code:
1 2 3 4 5 6
| Select o.nom, count(*) as nbContrats
From organisation o
Inner join contrat c
On o.idOrg = c.idOrg
Group by o.nom
Having count(*) > 5 |
ou
Code:
1 2 3 4 5
| Select o.nom, nbContratsOrg
From organisation o
Inner join contrat c
On o.idOrg = c.idOrg
where nbContratsOrg > 5 |
Bloqué sur un exercice en SQL
pas de souci pour l'activation :)
le problème c'est que je ne vois pas comment faire une distinction entre "nom de l'étudiant" et "nom de l'organisation" sachant qu'ils se nomment tous les deux "nom" ??