requete SQL : utilisation SUM et traduction en calcul domaine

requete SQL : utilisation SUM et traduction en calcul domaine - Programmation

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  [:sisicaivrai]

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

Reply

Marsh Posté le 27-11-2001 à 10:29:07   

Reply

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]


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

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


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

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)  



:jap:  
et comme ca ca marche? Je dois faire la requete en une fois...
(c de la théorie, hein ;) )
 :hello:

Reply

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... :ouch:

Reply

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... :ouch:  




y a personne qui voit? :(

Reply

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

Reply

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  :jap: je vais me débrouiller pour le SQL, mais en algèbre relationnel-domaine je ne vois VRAIMENT pas...

Reply

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  :non:

Reply

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  :non:  




mais
mais  
mais
c'est un exercice théorique ;)
alors perf...  :sarcastic:  
mais je vais pitete changer ca en jointure, si vous insistez...  ;)  
 
mais calcul domaaaaiiiiine :(

Reply

Marsh Posté le 27-11-2001 à 21:50:14   

Reply

Marsh Posté le 27-11-2001 à 21:52:39    

calcul domaine ? comprends pas...
le nombre d'eleve utilisant chaque imprimante?

Reply

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]

Reply

Marsh Posté le 27-11-2001 à 21:58:33    

oula vais pas me lancer dedans ce soir :) désolé je peut pas t'aider

Reply

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  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed