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 07/11/2011, 09h36   #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 SQL avec division

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:

3. Le consultant de "J'Investigue" a fait une première ébauche de son étude de marché, mais souhaite confirmer ses préconisations en poussant l'analyse plus loin. Il constate qu'il peut y avoir beaucoup de clients enregistrés dans la base, mais peut-être peu de factures associées. Il vous demande donc d'affiner l'analyser en calculant un ratio.
 Extraire pour chaque type de société, le ratio Nombre de factures adressées au client sur le nombre de clients. Pour plus de pertinence dans la présentation du résultat, il vous demande de les trier par ordre décroissant.

Je ne vois pas comment diviser le nombre de client par le nombre de facture qui leur est associé ... Si jamais vous avez des idées surtout n'hésitez pas.

Merci d'avance et bravo d'avoir eu le courage de lire mon pavé! =)
Tifany.Pitel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 10h01   #2
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
Me revoila,

Je viens d'écrire cette requête mais je ne sais pas vraiment si elle marche. Tout ce que je peux confirmer c'est que la syntaxe est bonne puisque ma requête s'éxecute mais il faudrait que je trouve un moyen de vérifier si elle me donne les bons résultats, ce qui risque d'étre compliqué...

Code :
1
2
3
4
5
6
7
8
9
SELECT TypeSociété, NbrFacture / Count (RefClient)
FROM Client INNER JOIN (
 
SELECT RefClient, Count (IdFacture) AS NbrFacture
FROM Facture
GROUP BY RefClient
                                           ) AS RefClient_NbrFacture
ON (RefClient_NbrFacture.RefClient=Client.IdClient)
GROUP BY TypeSociété, NbrFacture
Et voila ma capture d'écran:



Sachant que j'ai réalisé une requête pour ma question 2 sur laquelle je me suis appuyée:

2. Une entreprise extérieure, nommée "J'Investigue" a été mandatée par le service Marketing pour faire l'état de saturation du marché de distribution des fournitures et du mobilier d'entreprise. Elle sollicite votre aide pour lui faire un état des lieux de la typologie des clients actuels.  Extraire la liste des types de sociétés et du nombre de clients associés, que vous triez par ordre décroissant selon ce second calcul.

Ma requête étant:

Code :
1
2
3
4
SELECT TypeSociété, Count(IdClient) AS Nombre
FROM Client
GROUP BY TypeSociété
ORDER BY TypeSociété DESC
et donne :



Mais je viens d'avoir un doute... L'énoncé veut il que je trie par ordre décroissant le type de société ou le nbr de client??... oups
Tifany.Pitel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 19h48   #3
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
'core toi,

dans la question 3, on recherche le nbr moyen de facture par client pour chaque type de société si je comprends bien.

Une idée serait de faire une première requête qui calcule le nombre de factures par client :
Code sql :
1
2
3
4
SELECT IdClient, TypeSociete, count(idfacture) AS nbrFacture
FROM Client LEFT JOIN Facture
ON Client.idClient=Facture.refClient
GROUP BY idClient, TypeSociete

Cette requête R1 retourne par exemple:
Code :
1
2
3
4
5
6
7
Idclient	TypeSociete	nbrFacture
1		T1		3
2		T1		2
3		T1		0
4		T2		5
5		T2		3
6		T2		0
En reprenant R1,

Code sql :
1
2
3
4
5
SELECT 
TypeSociete,
Sum(nbrFacture)/count(*) AS ratio
FROM R1
GROUP BY TypeSociete

Soit ratio=5/3 pour T1, et ratio=8/3 pour T2.

A vérifier tout de même, et il y a surement d'autres manières de faire…
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/11/2011, 20h43   #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
Et bien d'après access il doit y avoir un problème dans la requete... Je ne vois pas lequel mais bon.
Sinon je comprends parfaitement la première requête R1 mais par contre la deuxième pas vraiment. On sélectionne le type de société, jusque là okay mais après pourquoi tu fais "Sum(nbrFacture)/count(*)" puisque ce qu'on veut c'est le ratio "nbr de factures adréssées au client (donc ce qu'il y a dans la requete R1 en fait)"/"nbr de clients"

En tous cas merci beaucoup!
Tifany.Pitel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 21h36   #5
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
Citation:
Envoyé par Tifany.Pitel Voir le message
Et bien d'après access il doit y avoir un problème dans la requete...
c'est à dire ? Message d'erreur ?


Code :
1
2
3
4
5
6
7
Idclient	TypeSociete	nbrFacture
1		T1		3
2		T1		2
3		T1		0
4		T2		5
5		T2		3
6		T2		0
Citation:
Envoyé par f-leb
Soit ratio=5/3 pour T1, et ratio=8/3 pour T2.
est-ce qu'on est d'accord sur le résultat qu'on doit obtenir ?
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 06h22   #6
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 199
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 199
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

Avant d'aller plus loin, tu devrais examiner la structure de tes tables car il y a, à mon avis, un défaut de conception puisque les catégories de clients servent à l'analyse...

Tu devrais donc sécuriser la structure des données à ce niveau?

Vois-tu de quoi je parles?

Cela étant dit, je trouve que
Citation:
Extraire pour chaque type de société, le ratio Nombre de factures adressées au client sur le nombre de clients
est ambigu.

Je comprendrais nombre de clients par cat / nombre total de clients et nombre de factures par cat / nombre total de factures, mais je ne vois pas l'analyse qui peut être tirée de l'énoncé tel qu'il est retranscrit ici.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier 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 16h57.


 
 
 
 
Partenaires

Hébergement Web