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...
 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  ![[:sisicaivrai] [:sisicaivrai]](https://forum-images.hardware.fr/images/perso/sisicaivrai.gif) 
 
Marsh Posté le 27-11-2001 à 21:58:33
oula vais pas me lancer dedans ce soir  désolé je peut pas t'aider
 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
![[:sisicaivrai] [:sisicaivrai]](https://forum-images.hardware.fr/images/perso/sisicaivrai.gif) 
 
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]