Accueil > Forum > > > > Besoin d'aide, requete, Access
Besoin d'aide, requete, Access
samedi 8 mars 2008 à 15:11:55 |
Besoin d'aide, requete, Access

good speed
|
Bonjour, Je travails sur ACCESS et je trouves des difficultés à realiser un certain calcul à l'aide d'une requete, voici le problem: J'ai deux tables Vente et Depenses Vente VenteID Date S-total 1 2/3/08 1150 2 2/3/08 1800 3 2/3/08 1200 4 3/3/08 1950 5 3/3/08 1400 6 3/3/08 6500 7 3/3/08 1200 Depenses DepensesID Date Dep-Montant 1 2/2/08 100 2 3/3/08 100 3 3/3/08 50 Alors j'aimerais bien à travers une requete obtenir Le Total Recette pour chaque jour en procedant à la soustraction du total des depenses pour chaque jour (table depenses) au total du sous total de chaque jour (table Ventes), ce qui donnerais en principe un resultat comme suit: Requete: Date Total Recette 2/3/08 4050 3/3/08 10900 Et pour ce faire j'ai essayé la requete suivant mais sans succes: SELECT vente.Date, Sum(([Sous Total])-( [montant])) AS [Sommes ST-MT], Depenses.Date FROM vente, Depenses GROUP BY vente.Date, Depenses.Date HAVING (((vente.Date)= Depenses.date)); Mais le Resultat de cette requete est le suivant: vente.Date Sommes ST-MT Depenses.Date 2/3/08 3850 2/3/08 3/3/08 21500 3/3/08 Ce qui est totalement faux Alors, Je vous saurais gré de bien vouloir me donner un coup de main sur cette problematique Merci. Health & Peace
|
|
lundi 10 mars 2008 à 08:35:15 |
Re : Besoin d'aide, requete, Access

LIBRE_MAX
|
Salut,
Quoi qu' il en soit,
voici comment j' ai résolu le provlème dans un cas similaire:
J' ai crée une table temporaire X_Date composée d' un seul
champ Date, que je remplis avec les journées qui représente
la période que je veux traiter.
Par exemple du 01/03/2008 au 07/03/2008.
xDate
01/03/2008
02/03/2008
03/03/2008
04/03/2008
05/03/2008
06/03/2008
07/03/2008
Bien xûr il faudra vider cette table avant de la remplir pour
chaque nouveau traitement.
Ensuite je lis ma table X_Date aus deux autres tables Vente et Depense
sur le champ vDate de l' une et dDate de l' autre.
Et voici comment se présente ma requete:
SELECT X_DATES.xDate, Sum(IIf(IsNull([DEPENSE]![dDate]),0,[DEPENSE]![Dep_Total])) AS Total_Depense, Sum(IIf(IsNull([VENTE]![vDate]),0,[VENTE]![S_Total])) AS Total_Vente, [Total_Vente]-[Total_Depense] AS Recette
FROM (X_DATES LEFT JOIN DEPENSE ON X_DATES.xDate = DEPENSE.dDate) LEFT JOIN VENTE ON X_DATES.xDate = VENTE.vDate
GROUP BY X_DATES.xDate;
Dans ton cas le résultat est le suivant :
xDate Total_Vente Total_Depense Recette
01/03/2008 0 0 0
02/03/2008 4150 100 4050
03/03/2008 11050 150 10900
04/03/2008 0 0 0
05/03/2008 0 0 0
06/03/2008 0 0 0
07/03/2008 0 0 0
PS : Le recours à un table Date résout le problème des journées
avec vente mais sans dépense et inversement.
|
|
lundi 10 mars 2008 à 19:30:50 |
Besoin d'aide, requete, Access

good speed
|
D'abord merci à toi Libre Max de t'etre interessé à mon problem, Alors j'ai essayé avec ta methode mais en vain au debut je me suis posé la question sur quelle type de relation fallait-il etablir entre la table date_x et les deut autres tables vente et Depenses, c'est à dire: 1 (date_x) ...............à plusieurs (Depenses ) 1 (date_x) ...............à plusieurs (Vente) ou alors l'inverse c à dire 1 ( Depenses)....................à plusieurs (Date_x) 1 (Vente)...........................à plusieurs (Date_x) alors j'ai essayé les deux types de relation et j'ai meme choisi le type de jointure que tu as indiqué dans ton code: LEFT JOIN........(dans la petite fenetre pour les relations et jointures) ensuite j'ai laissé le type de jointure standard pour voir ce que ca allait donner, sans succes, ensuite j'ai meme essayé ta methode dans une nouvelle base de données avec trois tables seulement vente (VenteID, Date, Sous Total,.....)- depenses ( DepensesID, Date, Montant.....) - dates_X ( DateID, Date) , et le resultat est toujours le meme : Voici le resultat: Recette Test| Date | Total_Depense | Total_Vente | Recette |
|---|
| 01/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 02/03/2008 | 300,00 € | 4 150,00 € | 3 850,00 € | | 03/03/2008 | 600,00 € | 22 100,00 € | 21 500,00 € | | 04/04/2008 | 0,00 € | 0,00 € | 0,00 € | | 05/05/2008 | 0,00 € | 0,00 € | 0,00 € | | 06/06/2008 | 0,00 € | 0,00 € | 0,00 € | | 07/07/2008 | 0,00 € | 0,00 € | 0,00 € | Voici le code SQL SELECT X_DATES.Date, Sum(IIf(IsNull(Depenses!Date),0,Depenses!Montant)) AS Total_Depense, Sum(IIf(IsNull(Vente!Date),0,Vente![Sous Total])) AS Total_Vente, [Total_Vente]-[Total_Depense] AS Recette FROM (X_DATES LEFT JOIN Depenses ON X_DATES.Date=Depenses.Date) LEFT JOIN Vente ON X_DATES.Date=VENTE.Date GROUP BY X_DATES.Date; Il y a encore la remarque laissé dans ton ps que j'ai pas compris, tu disais: "PS : Le recours à un table Date résout le problème des journées
avec vente mais sans dépense et inversement." Merci . Health & Peace
|
|
lundi 10 mars 2008 à 20:32:12 |
Re : Besoin d'aide, requete, Access

LIBRE_MAX
|
Pour commencer , changes la désignation de tes champs dates. Date est un mot reserve (Type, Fonction) et il risque d' y avoir confusion. Suis les désignation que j' ai adopté dans l' exemple.
Pour la relation, la première est la bonne. A savoir: 1 (date_x) ...............à plusieurs (Depenses ) 1 (date_x) ...............à plusieurs (Vente) Il faudra juste que pour les deux jointure la propriété soit: -Tout de x_date et seulement ceux de vente pour les quels les champs joints sont egaux -Tout de x_date et seulement ceux de depense pour les quels les champs joints sont egaux ce qui se traduit par:
vente <---- X_Date ----> depense.
Clic droit sur la jointure et choisis celle proposée pour aboutir à ce schema.
la requete telle que je l' ai proposée est la bonne.Elle marche à 100% pour moi.
Pour la remarque laissé au ps: si tu n' utilises pas la table qui fera le lien entre les deux, de quel type sera alors la jointure entre vente et depense ?
vente --- depense : si vente et pas depense ou inversement, il manquera des enregistrements.
ou vente ----->depense : il manquera les dates de depense qui ne se trouvent pas dans vente
ou vente <----depense : il manquera les dates de vente qui ne se trouvent pas dans depense.
... Y'en a même qui disent qu'ils l'ont vu voler.
/P>
|
|
mardi 11 mars 2008 à 20:43:37 |
Besoin d'aide, requete, Access

good speed
|
D"abord merci pour ta reponse Libre_Max, cependant, j'ai toujours le meme problem et pourtant j'ai soigneusement appliqué ta methode avec tes dernieres remarques evidemment, et voici la demarche que j'ai entrepris pas à pas, step by step, comme s'il y a qq chose qui cloche peut etre qui tu pourras le voir: 1.J'ai tout repris dans une nouvelle base de données et voici les tables que j'ai crée: DEPENSEDEPENSE| DepenseID | dDate | Total_Depense |
|---|
| 1 | 02/03/2008 | 100,00 € | | 2 | 03/03/2008 | 100,00 € | | 3 | 03/03/2008 | 50,00 € | Propriétés: DepenseID : numeroauto (clé) / dDate : Date et Heure / Total_Depense: Monetaire VENTEVENTE| VenteID | vDate | S_Total |
|---|
| 1 | 02/03/2008 | 1 150,00 € | | 2 | 02/03/2008 | 1 800,00 € | | 3 | 02/03/2008 | 1 200,00 € | | 4 | 03/03/2008 | 1 950,00 € | | 5 | 03/03/2008 | 1 400,00 € | | 6 | 03/03/2008 | 6 500,00 € | | 7 | 03/03/2008 | 1 200,00 € | Propriétés: VenteID: numeroauto (clé) / vDate: Date et Heure / S_Total : Monétaire X_DATESX_DATES| XdateID | xDate |
|---|
| 1 | 01/03/2008 | | 2 | 02/03/2008 | | 3 | 03/03/2008 | | 4 | 04/03/2008 | | 5 | 05/03/2008 | | 6 | 06/03/2008 | | 7 | 07/03/2008 | Propriété: XdateID : numeroauto (clé) / xDate : date et Heure 2. Pour Les relations : J'ouvre la fenetrre des relations, j'ajoutes les trois tables, puis, je prends le champ XdateID de la table X_DATES et je le glisse vers le champ vDate de la table VENTE, ensuite la fenetre des proprietés de la relation s'ouvre, je vois une relation type un- à- plusieurs, à gauche le champ XdateID et à droite le champ vDate, puis je vais dans l'onglet type jointure..., je click puis je choisi la 2 em option c à d : "inclure tout les enregistrements de la table 'X_date' et seulement ceux de la table 'VENTE ' pour lequels les champs joints sont égaux" une fois que c'est fait je fais la meme operation pour la table DEPENSE c à dire: Je prends le champ XdateID de la table X_DATES et je le glisse vers le champ dDate de la table DEPENSE, ensuite la fenetre des proprietés de la relation s'ouvre, je vois une
relation type un- à- plusieurs, à gauche le champ XdateID et à droite
le champ dDate, puis je vais dans l'onglet type jointure..., je click puis
je choisi la 2 em option c à d : "inclure tout les enregistrements de
la table 'X_date' et seulement ceux de la table 'DEPENSE ' pour lequels
les champs joints sont égaux" 3. Je saisis les données des trois tables respectives: DEPENSE, VENTE, X_Date comme decrit ci -dessus. 4. Je crée ma requete en mode SQL et j'insere le code suivant: SELECT X_DATES.xDate, Sum(IIf(IsNull([DEPENSE]![dDate]),0,[DEPENSE]![Total_Depense])) AS Total_Depense, Sum(IIf(IsNull([VENTE]![vDate]),0,[VENTE]![S_Total])) AS Total_Vente, [Total_Vente]-[Total_Depense] AS Recette FROM (X_DATES LEFT JOIN DEPENSE ON X_DATES.xDate = DEPENSE.dDate) LEFT JOIN VENTE ON X_DATES.xDate = VENTE.vDate GROUP BY X_DATES.xDate; et voici le resultat de cette requete RecetteRecette| xDate | Total_Depense | Total_Vente | Recette |
|---|
| 01/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 02/03/2008 | 300,00 € | 4 150,00 € | 3 850,00 € | | 03/03/2008 | 600,00 € | 22 100,00 € | 21 500,00 € | | 04/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 05/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 06/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 07/03/2008 | 0,00 € | 0,00 € | 0,00 € | alors voilà, je comprends plus rien, si je me suis trompé quelque part corrige moi stp. Merci. Health & Peace
|
|
mardi 11 mars 2008 à 21:22:40 |
Re : Besoin d'aide, requete, Access

LIBRE_MAX
|
Bonsoir, Pour la conception,tu as parfaitement fait ce qu' il fallait . Pour le résultat, la dernière colonne étant tronquée, est-ce bien ça ? | 01/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 02/03/2008 | 300,00 € | 4 150,00 € | 3 850,00 € | | 03/03/2008 | 600,00 € | 22 100,00 € | 21 500,00 € | | 04/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 05/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 06/03/2008 | 0,00 € | 0,00 € | 0,00 € | | 07/03/2008 | 0,00 € | 0,00 € | 0,00 |
Pour le 02/03/2008 4150.00 - 300.00 = 3850.00 Pour le 03/03/2008 22100.00 - 600.00 = 21500.00 c' est juste alors ! Ou est le problème ? NB: Si tu veux que les journées ou la recette est 0 n' apparaissent pas, il suffit d' ajouter la clause WHERE Recette <>0.
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
|
|
mardi 11 mars 2008 à 22:02:37 |
Re : Besoin d'aide, requete, Access

LIBRE_MAX
|
Ah je viens de comprendre ! c' est le total d' une journée (vente ou depense qui est faux. Dans ce cas il faut procèder ainsi: 1 crées une requete Z_VENTES regroupement sur vente vDate | SommeDeS_Total | 01/03/2008 | 2 000.00 € | 02/03/2008 | 2 000.00 € | 03/03/2008 | 3 000.00 € |
2 crées une requete Z_DEPENSES regroupement sur depense dDate | SommeDeDep_Total | 01/03/2008 | 200.00 € | 02/03/2008 | 200.00 € |
3 relies ces deux requetes à X_DATES xDate | Depenses | Ventes | Recette | 01/03/2008 | 200.00 € | 2 000.00 € | 1 800.00 € | 02/03/2008 | 200.00 € | 2 000.00 € | 1 800.00 € | 03/03/2008 | 0.00 € | 3 000.00 € | 3 000.00 € | 04/03/2008 | 0.00 € | 0.00 € | 0.00 € | 05/03/2008 | 0.00 € | 0.00 € | 0.00 € |
DONT L' EXPESSION EST : SELECT X_DATES.xDate, IIf(IsNull([Z_DEPENSES]![dDate]),0,[SommeDeDep_Total]) AS Depenses, IIf(IsNull([Z_VENTES]![vDate]),0,[SommeDeS_Total]) AS Ventes, [Ventes]-[Depenses] AS Recette FROM (X_DATES LEFT JOIN Z_DEPENSES ON X_DATES.xDate = Z_DEPENSES.dDate) LEFT JOIN Z_VENTES ON X_DATES.xDate = Z_VENTES.vDate; Cette 3 ième requete sera conçue de la même façon que celle proposée dans la première m"thode.Sauf qu' au lieu de lier X_DATE à table depense et table vente, elle sera liées aux nouvelles requetes Z_VENTES et Z_DEPENSES. PS: Pardon donc ! j'avais totalement oublié que c' est de cette façon que moi même j' ai procèdé dans mon cas. Dans mes précédentes réponse j' ai proposé la solution de mémoire.
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
|
|
mercredi 12 mars 2008 à 19:43:22 |
Re : Besoin d'aide, requete, Access

good speed
|
Merci encore Libre Max pour ta reponse, et puis c'est sans importance pour le probleme d'incompréhension de mon probleme depuis le depart..., finalement j'ai pu obtenir les resultats escomptés grace à ta méthode, cependant, tu m'excuses mais je trouve la solution tres compliquées, or afin d'aboutir au resultat des recettes il faudra activer les deux requetes Z_vente et Z_depense puis d'executer la requete Recette, pire encore, j'ai essayé d'ajouter une entrée pour la journée du 4/03/08 à chacune des deux tables vente et depenses puis j'ai executé les requetes Z_vente et Z_depense puis la requete Recette et au final aucun resultat pour la journée du 4/3/08. Avant de poster mon problem sur ce forum j'ai pu aboutir à mes fins en ayant recours à deux requetes et sans aucune relation pour les tables, et en esperant resoudre mon probleme avec une seule requete me voici avec trois, vraiment je commence à désespérer d'ACCESS, je voudrais juste qu'à la fin de la journée en executant une requete ou en cliquant sur un bouton de commande sur mon formulaire vente avoir le total de la recette du jour, ou est vraiment toute la puissance d'ACCESS dans tout ca ainsi que son AUTOMATION, en tout cas merci bien à toi Libre Max, et puis si seulement on pouvait me montrer une solution plus elegante à mon probleme ca serais bien. Merci. Health & Peace
|
|
jeudi 13 mars 2008 à 16:48:49 |
Re : Besoin d'aide, requete, Access

crn_c21
|
Peut etre une solution pour toi : SELECT XDate,VEN.Vente,DEP.Depense, CASE WHEN VEN.Vente Is Null Then CASE WHEN DEP.Depense Is Null THEN 0 ELSE 0-DEP.Depense END ELSE CASE WHEN DEP.Depense Is Null THEN VEN.Vente ELSE VEN.Vente- DEP.Depense END END AS Recette FROM XDates D LEFT OUTER JOIN (SELECT vDATE,Sum(S_TOTAL)As Vente FROM VENTES GROUP BY vDate) AS VEN On VEN.VDate=D.xDate LEFT OUTER JOIN (SELECT dDate,Sum(Total_Depense) As Depense GROUP BY dDate) as DEP On DEP.dDate=D.xDate
ça doit marcher!
|
|
jeudi 13 mars 2008 à 17:11:51 |
Re : Besoin d'aide, requete, Access

LIBRE_MAX
|
Bonjour, il faudra activer les deux requetes Z_vente et Z_depense puis d'executer la requete Recette. Non, En exécutant Recette, les deux requetes Z_vente et Z_depense s' éxécuteront d' elles mêmes puisqu' elles font parties de la requetes Recette.ça se fait de façon implicite. Fais des entrées dans vente et dans Depense et éxécutes uniquement Recette, tu verras que tes nouvelles entrées y figurerent. A condition bien sûr de mettre à jour ta table X_Dates avec toutes les dates souhaitées.Y compris celles nouvellement ajoutées.C 'est le principe de X_Dates.Il faut toujours la mettre à jour.
... Y'en a même qui disent qu'ils l'ont vu voler.
/P>
|
|
Cette discussion est classée dans : date, requete, total, vente, depenses
Répondre à ce message
Sujets en rapport avec ce message
une requete qui me casse la tête [ par chmouette ]
Salut les gens!Mon problème est purement SQL. J'ai une table Ma Table avec des champs tels que :+-------------------------+ ! MaTable &nbs
Comment effectuer une requete sql avec un test de différence de date ? [ par paddybl ]
bonsoir,voilà mon problémej'ai une table sql server avec un champ date de type dd/jj/aaaaje souhaite faire une requete sql avec comme condition, "trou
Probleme de date [ par fatbulle ]
Bonjour, Je dois selectionner dans une table les évenements qui ont lieu aujourd'hui ET les jour
requete avec date [ par nawal59 ]
salut,SELECT Table1.Aide, Table1.NumDossier, Table1.TypeDemAccomp,Table1.dateFicheEtabli, Table1.date1ercontact, Table1.nom, Table1.nomJeuneFille, Tab
help urgent requete oracle je mouline !!!! [ par tommie ]
bonjour j'ai un petit soucis avec une requete sous oracle, je vous explique le probleme:j'ai trois tables de la forme:-- TABLE SALARIE: CREATE TABLE S
XML et Requete [ par blueangel ]
blueangel12@yahoo.com 13/02/2006<b
requete sql access pour les dates [ par Rjoe ]
Bonjour Developpant une application pour la gestion des commandes j'ai été surpris en voyant qu'avec la requete sur ACCESS 2000SELECT COMMANDE.*FROM C
requete date [ par Rjoe ]
bonjour ma question est la suivantedans mon aplication je souhaite faire une verification pour un mois courant ,or, il se peut que ce mois soit févrie
requete qui fonctionne en local et pas en distant [ par gomoz ]
Voici la coupable :<span class="syn
Probleme avec une requete HELP ME [ par ronnie95 ]
Bonjours a tous,J'ai un probleme avec une requete :j'ai 1 table Reglement(id_reglement,type-reglement,montant,date)Je voudrais afficher la liste des s
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|