Totaux par ligne
Résolu/Fermé
jeanlo655
-
17 mars 2020 à 16:49
jeanlo678 Messages postés 1 Date d'inscription mercredi 18 mars 2020 Statut Membre Dernière intervention 21 mars 2020 - 21 mars 2020 à 20:48
jeanlo678 Messages postés 1 Date d'inscription mercredi 18 mars 2020 Statut Membre Dernière intervention 21 mars 2020 - 21 mars 2020 à 20:48
A voir également:
- Totaux par ligne
- Aller à la ligne excel - Guide
- Partager photos en ligne - Guide
- Vente en ligne particulier - Guide
- Apparaitre hors ligne instagram - Guide
- Gps hors ligne - Guide
7 réponses
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
Ambassadeur
1 557
17 mars 2020 à 21:40
17 mars 2020 à 21:40
bonjour,
dans Access, on parle d'enregistrement et pas de ligne, de champ et pas de colonne.
tu as ce soucis, probablement parce que tu as choisi de ne pas mettre zéro comme valeur par défaut dans tes champs, et que tu les laisses vides.
je pense qu'il suffit d'utiliser la fonction nz() pour qu'un champ vide soit traité comme un zéro.
si tu souhaites un exemple, fournis-nous un exemple de ce que tu fais, d'une formule ou d'une requête dans laquelle tu fais le total.
dans Access, on parle d'enregistrement et pas de ligne, de champ et pas de colonne.
tu as ce soucis, probablement parce que tu as choisi de ne pas mettre zéro comme valeur par défaut dans tes champs, et que tu les laisses vides.
je pense qu'il suffit d'utiliser la fonction nz() pour qu'un champ vide soit traité comme un zéro.
si tu souhaites un exemple, fournis-nous un exemple de ce que tu fais, d'une formule ou d'une requête dans laquelle tu fais le total.
Bonsoir yg_be, et merci pour cette réponse.
Comme je disais je suis débutant ...
Mon projet concerne la gestion d'une boutique.
J'ai (entre-autre) deux tables, "Big_Base" contient 400 enregistrements, les différents articles en vente (ou ayant été en vente) et "Ventes" les champs 2009 à 2019 comprenant les ventes par article par année.
Concrètement j'aurais besoin d'ajouter un champ "Vente" dans la table "Big_Base" qui cumule les ventes (2009 à 2019) pour chaque article.
Merci,
Comme je disais je suis débutant ...
Mon projet concerne la gestion d'une boutique.
J'ai (entre-autre) deux tables, "Big_Base" contient 400 enregistrements, les différents articles en vente (ou ayant été en vente) et "Ventes" les champs 2009 à 2019 comprenant les ventes par article par année.
Concrètement j'aurais besoin d'ajouter un champ "Vente" dans la table "Big_Base" qui cumule les ventes (2009 à 2019) pour chaque article.
Merci,
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
18 mars 2020 à 08:48
18 mars 2020 à 08:48
la structure de ta table Ventes n'est pas optimale: il serait préférable d'y ajouter un champ annee, et de n'y avoir qu'un champ ventes, donc en supprimant les champs 2009 à 2019.
il est fortement déconseillé d'ajouter des champs calculés dans des tables. il est préférable d'utiliser des requêtes pour obtenir ces valeurs calculées.
difficile de te donner un exemple précis, comme tu ne partages pas les noms des champs des tables.
à tout hasard:
il est fortement déconseillé d'ajouter des champs calculés dans des tables. il est préférable d'utiliser des requêtes pour obtenir ces valeurs calculées.
difficile de te donner un exemple précis, comme tu ne partages pas les noms des champs des tables.
à tout hasard:
select Big_Base.*, nz(Ventes.v2009,0) + nz(Ventes.v2019,0) from Big_Base left join Ventes on Big_Base.id = Ventes.article
Merci yg_be,
Pas de problème, je veux bien partager ... mais quoi ?
Comme je ne reçois pas le mail d’activation du compte je ne peux pas joindre de captures d’écran, alors je vais essayer comme ça.
Les tables « Big_Base » et « Ventes » contiennent le champ « Code » qui est la clé primaire des deux tables, ces deux champs sont liés par une relation de type « un à un ».
La table « Big_Base » contient d’autres champs, « Titre », « ISBN », « Fournisseur » etc. avec des informations relatives à chaque enregistrement.
Afin de ne pas la surcharger et pour une meilleure lisibilité, j’ai donc créé la table « Ventes » qui contient donc le champ « Code » (pour le lien avec la table « Big_Base ») et 11 autres champs nommés 2009, 2010 … jusqu’à 2019.
J’arrive à créer une requête (toute basique) qui contient Code, Titre, ISBN, 2009, 2010, jusque là tout va bien.
Ce que je n’arrive pas à faire c’est ajouter un champ qui totalise, pour chaque enregistrement, les ventes issues des champs 2009 à 2019.
Je peux supprimer sans problème le champ « Ventes » de la table « Big_Base » à partir du moment que je peux récupérer l’information par ailleurs.
Merci à toutes et à tous de votre aide.
P.S. Merci pour les deux lignes de code, mais où dois-je les copier ? (je débute avec Access)
Pas de problème, je veux bien partager ... mais quoi ?
Comme je ne reçois pas le mail d’activation du compte je ne peux pas joindre de captures d’écran, alors je vais essayer comme ça.
Les tables « Big_Base » et « Ventes » contiennent le champ « Code » qui est la clé primaire des deux tables, ces deux champs sont liés par une relation de type « un à un ».
La table « Big_Base » contient d’autres champs, « Titre », « ISBN », « Fournisseur » etc. avec des informations relatives à chaque enregistrement.
Afin de ne pas la surcharger et pour une meilleure lisibilité, j’ai donc créé la table « Ventes » qui contient donc le champ « Code » (pour le lien avec la table « Big_Base ») et 11 autres champs nommés 2009, 2010 … jusqu’à 2019.
J’arrive à créer une requête (toute basique) qui contient Code, Titre, ISBN, 2009, 2010, jusque là tout va bien.
Ce que je n’arrive pas à faire c’est ajouter un champ qui totalise, pour chaque enregistrement, les ventes issues des champs 2009 à 2019.
Je peux supprimer sans problème le champ « Ventes » de la table « Big_Base » à partir du moment que je peux récupérer l’information par ailleurs.
Merci à toutes et à tous de votre aide.
P.S. Merci pour les deux lignes de code, mais où dois-je les copier ? (je débute avec Access)
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
18 mars 2020 à 16:26
18 mars 2020 à 16:26
syntaxe adaptée suite aux informations que tu donnes:
le plus simple serait sans doute que tu partages la source SQL de la requête (toute basique) que tu veux completer.
ou que tu y ajoutes
par ailleurs, la structure de ta table Ventes n'est pas optimale: il serait préférable d'y ajouter un champ annee, et de n'y avoir qu'un champ ventes, donc en supprimant les champs 2009 à 2019.
select Big_Base.*, nz(Ventes.2009,0) + nz(Ventes.2019,0) as Ventes from Big_Base left join Ventes on Big_Base.Code = Ventes.Code ;
le plus simple serait sans doute que tu partages la source SQL de la requête (toute basique) que tu veux completer.
ou que tu y ajoutes
nz(Ventes.2009,0) + nz(Ventes.2019,0) as Ventes
par ailleurs, la structure de ta table Ventes n'est pas optimale: il serait préférable d'y ajouter un champ annee, et de n'y avoir qu'un champ ventes, donc en supprimant les champs 2009 à 2019.
Miracle j'ai trouvé (enfin la requête SQL) du coup je sais où placer le code
SELECT [Big Base].Code, [Big Base].[Titre - Objet], [Big Base].Statut, [Big Base].Catégorie, Ventes.[2009], Ventes.[2010], Ventes.[2011], [Big Base].[Vente totale]
FROM [Big Base] INNER JOIN Ventes ON [Big Base].Code = Ventes.Code;
Par contre je ne comprends pas la dernière partie de la réponse. Tous les ans je crée un champ (2019, 2018 ...) qui comporte les ventes de chaque article (ou vide si pas de vente).
Ensuite je crée un formulaire me permettant de voir, pour chaque article les ventes année par année (ça c'est bon) et le total cumulé de 2009 à 2019 (c'est ce que je n'arrive pas à faire)
Merci yg_be
SELECT [Big Base].Code, [Big Base].[Titre - Objet], [Big Base].Statut, [Big Base].Catégorie, Ventes.[2009], Ventes.[2010], Ventes.[2011], [Big Base].[Vente totale]
FROM [Big Base] INNER JOIN Ventes ON [Big Base].Code = Ventes.Code;
Par contre je ne comprends pas la dernière partie de la réponse. Tous les ans je crée un champ (2019, 2018 ...) qui comporte les ventes de chaque article (ou vide si pas de vente).
Ensuite je crée un formulaire me permettant de voir, pour chaque article les ventes année par année (ça c'est bon) et le total cumulé de 2009 à 2019 (c'est ce que je n'arrive pas à faire)
Merci yg_be
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
18 mars 2020 à 17:07
18 mars 2020 à 17:07
et ainsi?
ce que je suggère, c'est de structurer la table Ventes autrement, ainsi:
cela devrait faciliter et simplifier le reste du travail.
SELECT [Big Base].Code, [Big Base].[Titre - Objet], [Big Base].Statut, [Big Base].Catégorie, nz(Ventes.[2009],0) + nz(Ventes.[2010],0) + nz(Ventes.[2011],0) as TotalVentes FROM [Big Base] INNER JOIN Ventes ON [Big Base].Code = Ventes.Code;
ce que je suggère, c'est de structurer la table Ventes autrement, ainsi:
Code Annee Vente 001 2011 400 001 2019 200 002 2011 50 002 2020 300
cela devrait faciliter et simplifier le reste du travail.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci yg_be, ça marche dans une requête donc je devrais pouvoir l'adapter dans un formulaire.
Je comprends (enfin) ton raisonnement de la structure, effectivement, tu as raison, ça divise le nombre de données par 4 car les trois quarts de ma table "ventes" sont vides. A voir comment je peux récupérer mes données sans avoir à les ressaisir, mais ça c'est une autre histoire
Re Merci
Je comprends (enfin) ton raisonnement de la structure, effectivement, tu as raison, ça divise le nombre de données par 4 car les trois quarts de ma table "ventes" sont vides. A voir comment je peux récupérer mes données sans avoir à les ressaisir, mais ça c'est une autre histoire
Re Merci
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
18 mars 2020 à 19:15
18 mars 2020 à 19:15
et en plus cela simplifiera les changements à faire chaque année.
Bonsoir à toutes et à tous,
J'ai réorganisé ma table "Ventes" avec les champs "Code" "Vente" et "Année" comme préconisé.
Du coup, quelle est la syntaxe pour récupérer mes totaux ?
Merci beaucoup,
J'ai réorganisé ma table "Ventes" avec les champs "Code" "Vente" et "Année" comme préconisé.
Du coup, quelle est la syntaxe pour récupérer mes totaux ?
Merci beaucoup,
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
19 mars 2020 à 08:52
19 mars 2020 à 08:52
peut-être:
SELECT [Big Base].Code, [Big Base].[Titre - Objet], [Big Base].Statut, [Big Base].Catégorie, sum( Ventes.Vente ) as TotalVentes FROM [Big Base] INNER JOIN Ventes ON [Big Base].Code = Ventes.Code group by [Big Base].Code, [Big Base].[Titre - Objet], [Big Base].Statut, [Big Base].Catégorie ;
jeanlo678
Messages postés
1
Date d'inscription
mercredi 18 mars 2020
Statut
Membre
Dernière intervention
21 mars 2020
21 mars 2020 à 20:48
21 mars 2020 à 20:48
Tout fonctionne, merci yg_be