Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/11/2011, 21h43   #1
Invité régulier
 
Femme Tiffany Pitel
Étudiant
Inscription : novembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Femme Tiffany Pitel
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : novembre 2011
Messages : 13
Points : 7
Points : 7
Par défaut Requête qui pose problème

Bonjour,
Je solicite votre aide sur ce forum car je suis étudiante en L2 economie-gestion avec une spécialité maths & info. Or c'est la première année que j'utilise ACCESS et j'ai un petit soucis.
Lors de nos TD je n'ai eu jusqu'à présent aucun problème pour construire mes requêtes mais le prof nous a donné un "devoir maison" (qui compte pour notre partiel) et qui est d'un niveau bien plus élevé que ce que nous avons fait en cours jusqu'à présent.
Autant dire que j'ai déjà pas mal cogité sur la première question mais je n'y arrive pas... Et c'est assez frustrant c'est donc pour cela que je viens vous demander de l'aide.

Voici l'énoncé dans sa totalité:

Le stockage d'informations dans une base permet de satisfaire les deux types d'usages, qu'on peut faire de ces données :

 Un usage opérationnel à travers la gestion de la donnée. Par exemple, enregistrement d'une vente (par ajout d'une nouvelle facture), référencement d'un nouveau client (ajout ou modification de ses coordonnées), mise à jour du stock (mise à jour de la valeur d'un champ, effectuée lors d'inventaires annuels).

 Un usage décisionnel, analyses de tendances, basées sur des statistiques, pour déterminer une stratégie d'entreprise (d'où le terme "décisionnel").
Vous venez de finir vos études et êtes embauché dans une entreprise de revente de fourniture et de mobilier. Ses principaux clients sont d'autres sociétés. Vous faites partie du service comptabilité-facturation et connaissez Access, outil au travers duquel l'entreprise assure toute sa gestion. Votre maîtrise de l'outil fait converger vers vous les demandes des autres services.
La base est structurée ainsi :




Il faut noter que :

 Une facture traduit la vente d'un ou de plusieurs produits.

 Chaque trimestre, les prix de chaque produit varient. Un nouveau barème/catalogue est édité. Le service Marketing met à jour le prix de vente de chaque produit en fonction de l'état du marché et le service Achat met à jour le coût d'achat du produit en fonction des dernières négociations avec ses fournisseurs/fabricants.

 Les dates de barèmes sont consécutives. La date de fin d'un barème est la veille de la date de début du barème suivant. Aucune période ne se chevauche.


Voici ma question:

6. Vous préparez la prochaine réunion de service, au cours de laquelle chaque membre de l'équipe a en charge le calcul d'un indicateur particulier. Vous avez habituellement pour tâche de présenter le chiffre d'affaires cumulé depuis le 1er janvier de l'année.

 Calculer le chiffre d'affaires total (càd total des ventes) sur l'année en cours.

J'ai déjà mis au point une requête mais le problème c'est que je viens de trouver une faille que je ne sais pas comment résoudre...

Voici ma requête:

Code sql :
1
2
3
4
5
6
7
SELECT Sum(Prix.PrixVente) AS ChiffreDAffaires
FROM Prix INNER JOIN (
(Produit INNER JOIN LigneFacture ON Produit.IdProduit = LigneFacture.RefProduit)
               INNER JOIN Facture 
               ON LigneFacture.RefFacture = Facture.IdFacture)  
ON Prix.RefProduit = Produit.IdProduit
WHERE (Year(Facture.DateFacture))=Year(Date())


Le problème c'est que je n'ai fait qu'additionner tous les prix de vente, cela ne correspond donc pas au chifffre d'affaire car un produit est vendu plusieurs fois (en terme de quantité mais aussi de facture par exemple à des clients différents...)

Donc je cherche mais sincèrement je ne trouve pas...
Tifany.Pitel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 10h34   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Tifany.Pitel,

Citation:
Envoyé par Tifany.Pitel
Or c'est la première année que j'utilise ACCESS .../...
==> je te suggère donc d'utiliser les assistants, notamment, ceux de création de requête.


Citation:
Envoyé par Tifany.Pitel
 Calculer le chiffre d'affaires total (càd total des ventes) sur l'année en cours.
==> suggestion :

Requête R1
  • Facture => Barème (FROM / LEFT JOIN) ;
  • sélectionner IdFacture, IdBarème (SELECT) ;
  • modifier la requête en mode SQL : LEFT JOIN avec DateFacture compris entre DateDébut et DateFin.
==> donne le barème correspondant à toutes les factures (requêtes devant servir à beaucoup de traitements de cette société (fictive, heureusement...)).


Requête R2
  • Facture
    => R1
    => LigneFacture => Produit
    => Prix (FROM/LEFT JOIN) (je te laisse trouver comment joindre Prix) ;
  • ne sélectionner que l'année en cours, comme tu l'as fait (WHERE) ;
  • faire la somme de Quantité*Prix (tu as oublié de multiplier par la quantité).


Pas testé, mais nous ne devrions pas être très loin...
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 09h26   #3
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonjour
La clause WHERE fait intervenir le barême qui a été oublié
Code :
1
2
3
4
 
SELECT Sum(Prix.PrixVente) AS ChiffreDAffaires
FROM (((Facture INNER JOIN LigneFacture ON Facture.IdFacture = LigneFacture.RefFacture) INNER JOIN Produit ON LigneFacture.RefProduit = Produit.IdProduit) INNER JOIN Prix ON Produit.IdProduit = Prix.RefProduit) INNER JOIN Bareme ON Prix.RefBareme = Bareme.IdBarème
WHERE (((Facture.DateFacture)>=[Bareme]![DateDebut] And (Facture.DateFacture)<=[Bareme]![DateFin]) AND ((Year([DateFacture]))=Year(Now())));
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 13h24   #4
Invité régulier
 
Femme Tiffany Pitel
Étudiant
Inscription : novembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Femme Tiffany Pitel
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : novembre 2011
Messages : 13
Points : 7
Points : 7
Richard_35 >

Tout d'abord je n'ai pas l'autorisation d'utiliser les assistants et même si je le fesait et bien je serait bien embétée quand je ne les aurait pas à disposition autrement dit pour mes ds ^^. Et à vrai dire je ne sais même pas comment on fait...

Sinon je n'ai pas tout compris à ce que tu as écrit... en fait dès que ca ne se présente pas de la même manière que le code sql lui même je ne comprends plus grand chose. C'est quoi LEFT JOIN? parce que je connais INNER JOIN mais pas LEFT JOIN.

Sinon je sais bien qu'il va me falloir multiplier mes prix de vente par les quantités mias j'ai vraiment du mal à savoir comment étant donné qu'il faut que ce produit ait été vendu et qu'il peut l'avoir été à plusieurs reprises à différentes entreprises... Je me perds...

Richard_35 & helas >

Je ne vois pas comment et pourquoi vous faites intervenir les barèmes...

Merci beaucoup en tous cas de bien vouloir m'aider!
Tifany.Pitel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 15h14   #5
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Tifany.Pitel,

Citation:
Envoyé par Tifany.Pitel
C'est quoi LEFT JOIN?
==> FROM A LEFT JOIN B : donne tous les enregistrements de A ; les enregistrements de B apparaissent en regard de l'enregistrement de A correspondant s'ils existent, sinon NULL. Le mieux est de tester.


Citation:
Envoyé par Tifany.Pitel
Je ne vois pas comment et pourquoi vous faites intervenir les barèmes...
==> Bien.
Peux-tu me dire dans quelle table se trouve le prix d'un article ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 16h44   #6
Invité régulier
 
Femme Tiffany Pitel
Étudiant
Inscription : novembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Femme Tiffany Pitel
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : novembre 2011
Messages : 13
Points : 7
Points : 7
Et bien le prix d'un article se trouve dans la table des prix non? c'est le champ "PrixVente"?...
Tifany.Pitel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 16h47   #7
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Tifany.Pitel
Et bien le prix d'un article se trouve dans la table des prix non? c'est le champ "PrixVente"?...
==> exact.
Et dans cette table Prix, le PrixVente d'un RefProduit dépend d'un RefBarème, non ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h21.


 
 
 
 
Partenaires

Hébergement Web