Requête SQL sous Access

Fermé
RicHamilton Messages postés 49 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 18 juillet 2006 - 15 juil. 2005 à 15:59
 balla - 15 sept. 2010 à 00:54
Salut à vous,
J'écris actuellement un programme sous Access qui gère les stocks de pièces détachées, mais j'ai un problème :

En fait j'ai 4 tables
FACTURE (NumFac, DateFac)
CATEGORIE (CodeCat, LibCat)
PIECES (RefPiece, LibPiece, #CodeCat, PU, QteStock)
DETAILS_FACTURE (#NumFac, #RefPiece, PU, Qte, Remise)

Je voudrais avoir une liste de toutes les pièces ainsi que leurs ventes pendant une période donnée.

Je vous remercie d'avance

6 réponses

zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
15 juil. 2005 à 16:30
Je pense que tu as un problème de structure: je ne vois pas de raison de séparer les renseignements propres à la facture en deux tables.

Le code SQL suivant devait fonctionner en insérant la date dans la table Factures et en vérifiant bien sûr les noms des champs...


SELECT Catégorie.Cat, Pièces.NomPièce, Facture.Quantité, Facture.DateFact
FROM (Catégorie INNER JOIN Pièces ON Catégorie.RefCat = Pièces.RefCat) INNER JOIN Facture ON Pièces.RefPièce = Facture.RefPièce WHERE (((Facture.DateFact) Between #Date début# And #date de fin#));
2
digicharat Messages postés 34 Date d'inscription mercredi 29 juin 2005 Statut Membre Dernière intervention 5 avril 2007
15 juil. 2005 à 16:44
je crois que la facture possède plusieurs lignes

chacune de ces lignes est contenu dans le detail et fait référence à un produit d'une facture ( donc il peut y avoir plusieurs plusieurs produit dans la facture )

c un peu comme un ticket de caisse koi avec les produits et le ticket

c pour ça que y'a deux tables, en somme pour éviter la redondance des données relative à la facture en elle meme(principe de base en BD)
0
afficher la remise d'une facture
1
j'aimerai une repose
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
15 juil. 2005 à 16:52
C'est juste!
désolé...
0
digicharat Messages postés 34 Date d'inscription mercredi 29 juin 2005 Statut Membre Dernière intervention 5 avril 2007
15 juil. 2005 à 16:55
je me permet d'adapter le code et de le simplifier

SELECT libCat, libPièce, sum(Qte) as quantite_vendu
FROM ((Categorie INNER JOIN Pieces ON Categorie.codeCat = Pieces.codeCat) INNER JOIN details_Facture ON Pieces.RefPiece = details_Facture.RefPiece )Inner join facture on facture.numfac = details_facture.numfac
WHERE Facture.DateFac Between #Date début# And #date de fin#;

les # c'est seulement si t'ecrit tes date en texte (genre 3 janvier 2004) si c dans le genre 22/05/81 ils faut les écrire entre ' (simple quote) genre 'date_debut'
0
RicHamilton Messages postés 49 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 18 juillet 2006
15 juil. 2005 à 17:26
Slt
Je te remercie d'avance pr ta reponse, mais il y a un detail ke tu oublies:
ta requete ne fonctionne ke pour les pieces ki ont ete vendues.
Je voudrais une liste de TOUTES les pièces (vendues ou pas) pendant une periode donnée genre:

Entre #1/1/2005# Et #15/7/2005#

P1, 45000
P2, 0
P3, 0
P4, 4532
.
.
.

Tu vois
0
mohammed > RicHamilton Messages postés 49 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 18 juillet 2006
15 juil. 2005 à 20:22
Salut,
je crois qu'il vous manque date d'achat, pour avoir la liste de tous les pièces entre 2 dates.
je crois!
Bonnechance.
Merci
0
RicHamilton Messages postés 49 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 18 juillet 2006 > mohammed
15 juil. 2005 à 20:39
Non mais la date d'achat correspond à la date de facturation "DateFac" de la table FACTURE.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut,
je crois qu'il vous faut une requête entre facture et détail facture entre 2 dates et par suite une rrequête simple entre la table pièce
ensuite cliquez sur le lien (la ligne) qui se trouve entre la table et la req ensuite choisire 1 ou 2 je ne me rappel pas.
j'espère que sa va marcher.
Bonne chance.
Merci
0
Bonjour
vous n'avez pas précisez les relations entre les tables ?
Veuilez établir une relation Père et fils
Faites une requête
SELECT * FROM VOTRE_TABLE WHERE LE_CHAMPS_DATE BETWEEN TXT1 AND TXT2

Veuillez me joindre au

solsurm@live.fr
Je suis developpeur ACCESS
0