Écrivez une requête pour afficher le nom, le nom du département et les marques des meilleurs interprètes de l'ingénierie du logiciel, commandé par le nom du département à l'ordre croissant.
J'ai utilisé ci-dessous la requête, mais que je n'ai pas eu le résultat souhaité. moi deux étudiants de différents département avec les mêmes marques dans le génie logiciel P> renvoyer le schéma p> p>
4 Réponses :
Cette partie nécessite une modification:
and (c.subject_id, c.value)
in (select subject_id, max(a.value)
from mark a
join subject d using (subject_id)
where d.subject_name = 'Software Engineering'
group by subject_id)
Votre solution donne des entrées ambiguës. Ne travaille pas proprement.
2 fort> .Vous n'avez pas rejoint la table de sujet et n'a pas vérifié si sujet est l'ingénierie logicielle. p> solution au problème est le suivant: strong> p>
select student_name,department_name,value
from Student
inner join department using(department_id)
inner join mark using(student_id)
inner join subject using(subject_id)
where value = (select max(value) from mark join subject using(subject_id) where lower(subject_name)='software engineering')
and lower(subject_name)='software engineering'
order by department_name;
Veuillez expliquer ce que vous avez changé vers la requête originale et pourquoi. Cela est plus utile de comprendre le raisonnement des changements par opposition à donner la réponse.
Sélectionnez Student_Name, Nom de département, valeur du département de jointure de l'étudiant S sur s.department_id = d.department_id jointure Mark m sur S.Student_id = s.student_id Joindre sujet su sur m.subject_id = su.subject_id où sujette_name = "Génie logiciel" et valeur = (sélectionnez max (valeur) à partir de Mark M1 Join Sujet su1 sur m1.subject_id = su1.subject_id où sujette_name = "Génie logiciel") commander par 2 ASC; P>
En règle générale, veuillez mettre votre code SQL dans le bloc de code. Vous pouvez utiliser Google pour le marquage de Stackoverflow. Deuxième chose. Ajoutez quelques explications avec votre code.
Il n'y a pas assez d'informations ici pour vous aider. Veuillez fournir des données d'échantillonnage et des relations pertinentes entre les tables (si ce n'est pas évident). Comme il s'agit de devoirs, veuillez également fournir votre tentative de résoudre.
@Jnevill maintenant j'ai fourni la requête que j'ai construite moi-même. S'il vous plait verifiez maintenant.
Pourquoi votre résultat est-il faux? La tâche dit "Top Performer (s)" afin que cela s'attend à ce qu'il puisse y avoir une cravate. Sinon, comment choisiriez-vous entre les deux?
@Alexpoole Je ne sais pas pourquoi c'est faux. S'il vous plaît voir le schéma
Jetez un coup d'œil à Stackoverflow.com/help/on-topic - cette partie: "Questions demandant une aide aux devoirs doit inclure un Résumé du travail que vous avez fait jusqu'à présent pour résoudre le problème et une description de la difficulté que vous rencontrez la résolution. "