< SQL | Forum des BTS

SQL

  • Auteur de la discussion Auteur de la discussion gwen1
  • Date de début Date de début

gwen1

New Member
bonjour a tous,

Je vois dans les sujets des années précédentes, des questions sur le modèle relationnel à rédiger en SQL.

Je ne comprend rien à ce qu'il faut faire, est ce que c'est encore au programme de cette année?, si oui pouvez vous m'aider à comprendre.

Merci à tous :biggrin:
 
Tiens une question:

Quantité total de pièces utilisées pour les matériels en cours de révision pendant le mois de Septembre 200N et classement chronologique.

_Schéma relationnel:
REVISION(Numficherev, DateDébutRev, Date FinRévision, HeuresRévision, #RéfMatériel)
UTILISER(#RéfPièce + #NumFicheRévision, Qtepièce)

_Mon SQL
SELECT DateDévutRev, SUM(QtePièce) AS QteSept
FROM UTILISER, REVISION
WHERE NumFicheRev.REVISION=NumFicheRev.UTILISER
AND DateDebut=#01/09/200N#
AND DateFin=#30/09/200N#
Order By DateDébutRevision

_La correction :
SELECT DateDévutRev, SUM(QtePièce) AS QteSept
FROM UTILISER, REVISION
WHERE NumFicheRev.REVISION=NumFicheRev.UTILISER
GROUP BY DateDebutRev
HAVING(DateDebutRev) &gt;=#01/09/200N# AND DateDebutRev&lt;=#30/09/200N#)
ORDER BY DateDebutRev

Peut on dire que le ma requête soit bonne??
 
Salut,
Lorsqu'on emploie en SQL, les fonctions telles que SUM(), AVG(), MIN(), etc, on doit impérativement utiliser dans la syntaxe de la requête les fonctions de regroupement COUNT, GROUP BY et HANVING.
De plus, d'où tirez-vous DateDebut et DateFin?
Certe votre proposition amènerait à produire le bon résultat, mais sans la bonne la bonne syntaxe.
Des 2 expressions, c'est la correction qu'il faut prendre en considération
@+
 
Merci beaucoup pour ton aide :aplause:
Est ce qu'on peut dire que si on utilise la fonction SUM() on utilise obligatoirement la fonction HAVING()? où est ce au cas par cas?
 
Bonjour,
Dès que vous utilisez SUM() AVG() MAX() MIN() et qu'il y a un critère soit sur votre alias, soit sur un champ compris dans SELECT, vous devez impérativement utiliser HAVING pour mentionner le critère.
@+
 
vestale974 link=topic=23957.msg221324#msg221324 date=1147090741 a dit:
De plus, d'où tirez-vous DateDebut et DateFin?
Certe votre proposition amènerait à produire le bon résultat, mais sans la bonne la bonne syntaxe.
Des 2 expressions, c'est la correction qu'il faut prendre en considération
@+

DatedébutRev et DateFinRev appartiennent à l'entité REVISION

Ok merci beaucoup :dacc:
 
Re,
De plus, dans la syntaxe de votre critère, il y a une erreur grossière. Tu utilises le signe =, alors qu'il faudrait utiliser les symboles de comparaison.
AND DateDebut=#01/09/200N#
AND DateFin=#30/09/200N#
...
AND DateDebut&gt;=#01/09/200N#
AND DateFin&lt;=#30/09/200N#
 
Retour
Haut