requete SQL : utilisation SUM et traduction en calcul domaine - Programmation
Marsh Posté le 27-11-2001 à 11:23:01
commence par éviter le select in et utilises les jointures, surtout que ta requetes est fausse syntaxiquement il manque "nomat ":
SELECT nom, prenom, etudiant.nomat FROM etudiant WHERE nomatIN(SELECT util-imprim.nomat FROM util-imprim WHERE nomI='AAA' AND SUM(nbpages)>350 GROUP BY nomat)
[edtdd]--Message édité par jupiler--[/edtdd]
Marsh Posté le 27-11-2001 à 11:28:27
ensuite la jointure:
SELECT e.nom, e.prenom, sum(ui.nbpages) FROM etudiant e, util-imprim ui WHERE e.nomat = ui.nomat and ui.nomI='AAA'
group by e.nom, e.prenom
là tu as la somme des pages par étudiant.
rajoute la condition having sum(ui.nbpages) > 350 pour filtrer sur ceux qui impriment bcp
Marsh Posté le 27-11-2001 à 12:00:31
jupiler a écrit a écrit : SELECT nom, prenom, etudiant.nomat FROM etudiant WHERE nomatIN(SELECT util-imprim.nomat FROM util-imprim WHERE nomI='AAA' AND SUM(nbpages)>350 GROUP BY nomat) |
et comme ca ca marche? Je dois faire la requete en une fois...
(c de la théorie, hein )
Marsh Posté le 27-11-2001 à 16:14:56
alors, c bon comme ca? Et pour le calcul de domaine, je ne vois absolument pas comment faire...
Marsh Posté le 27-11-2001 à 20:55:08
sisicaivrai a écrit a écrit : alors, c bon comme ca? Et pour le calcul de domaine, je ne vois absolument pas comment faire... |
y a personne qui voit?
Marsh Posté le 27-11-2001 à 21:42:38
pkoa tu met pas une jointure comme jupiler te l'as conseillé?
SELECT
E.nom,
E.prenom
FROM
etudiant as E
inner join util-imprim as UI
on UI.nomat=E.nomat
and UI.nomI='AAA'
and sum(UI.nbpages)>350
order by
E.nom,
E.prenom
Marsh Posté le 27-11-2001 à 21:46:16
speedyop a écrit a écrit : pkoa tu met pas une jointure comme jupiler te l'as conseillé? SELECT E.nom, E.prenom FROM etudiant as E inner join util-imprim as UI on UI.nomat=E.nomat and UI.nomI='AAA' and sum(UI.nbpages)>350 order by E.nom, E.prenom |
mais la version que je donne est-elle aussi valable? J'ai peur de me planted avec une jointure... 'fin sinon je vais me débrouiller pour le SQL, mais en algèbre relationnel-domaine je ne vois VRAIMENT pas...
Marsh Posté le 27-11-2001 à 21:48:20
ben ca devrait marcher mais c tres laid le in avec une sous requette niveau perf c pas top
Marsh Posté le 27-11-2001 à 21:50:14
speedyop a écrit a écrit : ben ca devrait marcher mais c tres laid le in avec une sous requette niveau perf c pas top |
mais
mais
mais
c'est un exercice théorique
alors perf...
mais je vais pitete changer ca en jointure, si vous insistez...
mais calcul domaaaaiiiiine
Marsh Posté le 27-11-2001 à 21:52:39
calcul domaine ? comprends pas...
le nombre d'eleve utilisant chaque imprimante?
Marsh Posté le 27-11-2001 à 21:57:13
non non, calcul domaine n'a riena voir avec sql, c une autre forme de langage:
pour avoir une idée de la sale gueule que ca a:
http://polytech.ulb.ac.be/cours/info364/calcultd.pdf
page 2
oui, cai laiiiid le calcul domaiiiine
Marsh Posté le 27-11-2001 à 21:58:33
oula vais pas me lancer dedans ce soir désolé je peut pas t'aider
Marsh Posté le 27-11-2001 à 22:04:28
speedyop a écrit a écrit : oula vais pas me lancer dedans ce soir désolé je peut pas t'aider |
po grave
Marsh Posté le 27-11-2001 à 10:29:07
ce que je dois faire : afficher tous les noms et prenoms des etudiants dont le nbr de pages imprimees sur l'imprimante AAA est supérieur a 350
j'ai:
une table etudiant: nom, prenom, nomat, ...
une table util-imprim: nomI, nomat, date, heure, nbpages
est ce que ca a une chance de marcher:
SELECT nom, prenom, etudiant.nomat FROM etudiant WHERE IN(SELECT util-imprim.nomat FROM util-imprim WHERE nomI='AAA' AND SUM(nbpages)>350 GROUP BY nomat)
et je dois aussi faire ca en calcul relationnel domaine
[edtdd]--Message édité par sisicaivrai--[/edtdd]