Fonction DSum() fesant référence à une donnée de la même requête
Résolu/Fermé
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
-
27 févr. 2020 à 22:14
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024 - 1 mars 2020 à 15:33
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024 - 1 mars 2020 à 15:33
A voir également:
- Fonction DSum() fesant référence à une donnée de la même requête
- Fonction si et - Guide
- Reference pto - Guide
- Dans le document à télécharger, les références des pièces détachées sont affichées par pays, puis par type de pièces. réorganisez le document pour avoir : les pays dans l'ordre alphabétique : allemagne, espagne, france et italie ; et pour chaque pays, les pièces d'auto, de bateau et de moto dans cet ordre. quelle est la référence de la pièce en ligne 500 ? ✓ - Forum Windows
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
- Germain veut gérer les activités de son association avec une base de données. il a commencé à créer des tables dans un fichier, mais il n’est pas sûr du résultat. le fichier à télécharger contient uniquement le schéma de cette base de données. en l’état actuel, que peut-on en déduire ? - Forum Outlook
9 réponses
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
27 févr. 2020 à 23:06
27 févr. 2020 à 23:06
bonjour,
tu n'expliques pas ce que tu veux obtenir.
tu décris un peu ce que tu fais, un peu comment tu voudrais le faire, et cela ne suffit pas.
merci de faire un effort pour présenter ta requête de façon lisible, par exemple:
tu n'expliques pas ce que tu veux obtenir.
tu décris un peu ce que tu fais, un peu comment tu voudrais le faire, et cela ne suffit pas.
merci de faire un effort pour présenter ta requête de façon lisible, par exemple:
SELECT [08_00-CHOIX_ALLOC_TABLE].No_AL, [06-ALLOCATIONS_BUDGET].NoET_AL, [03-ÉTABLISSEMENTS].Nom_ET, [03-ÉTABLISSEMENTS].CoUT_ET, [02-UTILISATEURS].Nom_UT, [06-ALLOCATIONS_BUDGET].NoME_AL, [05-MESURES].Titre_ME, [05-MESURES].NoRM_ME, [04-REGROUPEMENTS_M].Titre_RM, [06-ALLOCATIONS_BUDGET].BudCal_AL, DSum("[NET_DA]","07-DÉPENSES_AUTRES","[NoAL_DA]=[05_01-PLATEFORME].[No_AL]") AS Expr2 FROM ([04-REGROUPEMENTS_M] INNER JOIN [05-MESURES] ON [04-REGROUPEMENTS_M].No_RM = [05-MESURES].NoRM_ME) INNER JOIN (([02-UTILISATEURS] INNER JOIN [03-ÉTABLISSEMENTS] ON [02-UTILISATEURS].Code_UT = [03-ÉTABLISSEMENTS].CoUT_ET) INNER JOIN ([06-ALLOCATIONS_BUDGET] INNER JOIN [08_00-CHOIX_ALLOC_TABLE] ON [06-ALLOCATIONS_BUDGET].No_AL = [08_00-CHOIX_ALLOC_TABLE].No_AL) ON [03-ÉTABLISSEMENTS].No_ET = [06-ALLOCATIONS_BUDGET].NoET_AL) ON [05-MESURES].No_ME = [06-ALLOCATIONS_BUDGET].NoME_AL;
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
28 févr. 2020 à 00:40
28 févr. 2020 à 00:40
Oui, désolée.
Je vais synthétiser d'une autre façon.
Requête:
[PRINCIPALE] = ma requête principale dans laquelle je souhaite ajouter l'expression; cette requête est tirée des champs d'autres tables non citées ici pour simplifier ma demande.
Champs: No1, Nom, Expression
Table:
[AUTRE] = une table dans laquelle je vais récupérer mes données pour les mettre dans ma requête principale à l'aide de la fonction DSum().
Champs: No2, Montant
C'est donc le calcul de mon Expression qui cause problème, car le système ne reconnait pas la partie [PRINCIPALE].[No1] dans mon critère "[No2] = [PRINCIPALE].[No1]" de la fonction DSum().
Espérant être un peu plus précise dans ma demande.
Merci beaucoup! :)
Je vais synthétiser d'une autre façon.
Requête:
[PRINCIPALE] = ma requête principale dans laquelle je souhaite ajouter l'expression; cette requête est tirée des champs d'autres tables non citées ici pour simplifier ma demande.
Champs: No1, Nom, Expression
Table:
[AUTRE] = une table dans laquelle je vais récupérer mes données pour les mettre dans ma requête principale à l'aide de la fonction DSum().
Champs: No2, Montant
SELECT [PRINCIPALE].No1 , [PRINCIPALE].Nom , DSum("[Montant]" , "AUTRE" , "[No2] = [PRINCIPALE].[No1]") AS Expression FROM [PRINCIPALE];
C'est donc le calcul de mon Expression qui cause problème, car le système ne reconnait pas la partie [PRINCIPALE].[No1] dans mon critère "[No2] = [PRINCIPALE].[No1]" de la fonction DSum().
Espérant être un peu plus précise dans ma demande.
Merci beaucoup! :)
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
Modifié le 28 févr. 2020 à 01:15
Modifié le 28 févr. 2020 à 01:15
en fait, la requête fonctionne-t'elle?
tu montres ce que tu essaies, tu n'expliques pas ce que tu veux obtenir, ni ne donnes d'exemple.
peut-être:
et, si tu insistes pour utiliser dsum, peut-être:
tu montres ce que tu essaies, tu n'expliques pas ce que tu veux obtenir, ni ne donnes d'exemple.
peut-être:
SELECT [PRINCIPALE].No1 , [PRINCIPALE].Nom , sum(AUTRE.Montant) FROM [PRINCIPALE], AUTRE WHERE AUTRE.No2 = [PRINCIPALE].[No1] GROUP BY [PRINCIPALE].No1 , [PRINCIPALE].Nom;
et, si tu insistes pour utiliser dsum, peut-être:
SELECT [PRINCIPALE].No1 , [PRINCIPALE].Nom , DSum("[Montant]" , "AUTRE" , "[No2] = " & [PRINCIPALE].[No1]) AS Expression FROM [PRINCIPALE];
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
28 févr. 2020 à 03:24
28 févr. 2020 à 03:24
En fait, la requête fonctionne, mais je ne dois pas faire afficher la table [AUTRE] directement dans ma requête pour obtenir toutes les données dont j'ai besoin.
J'ai essayé les deux méthodes que tu m'as proposées, mais ça ne fonctionne toujours pas, car j'ai besoin de voir les enregistrements de la requête [PRINCIPALE] même s'ils sont à zéro au niveau du [Montant] dans la table [AUTRE]. C'est pourquoi j'ai opté pour la fonction DSum().
Voici ce que je veux faire concrètement (vous saurez me dire si DSum() est la solution):
Je souhaite voir, pour chacun des enregistrements [No1], la somme de tous les [Montant] des enregistrements contenus dans la table [AUTRE].
La table [AUTRE] comporte des enregistrements dont le champ [No2] est lié à la clé primaire [No1] apparaissant dans la requête [PRINCIPALE]. Si je fais afficher simplement la table [AUTRE] dans la requête, je me retrouve dans ma requête à avoir plusieurs lignes pour le même [No1], ce qui pourrait probablement se régler par un regroupement, mais je perds aussi tous les autres enregistrements qui ne comportent pas de [Montant] parce qu'il n'a pas nécessairement d'enregistrement lié à tous les [No1] dans la table [AUTRE]...
Exemple:
Requête [PRINCIPALE]:
[No1] [Nom] [Expression] (DSUM([Montant],[AUTRE],[No2]=[No1])
1 Siège social 200$
2 Établissement A -$
3 Établissement B 50$
Table [AUTRE]
[No] [No2] [Montant]
1 3 25$
2 1 100$
3 1 50$
4 3 25$
5 1 50$
Est-ce plus clair?
Merci encore beaucoup de prendre le temps de m'aider.
J'ai essayé les deux méthodes que tu m'as proposées, mais ça ne fonctionne toujours pas, car j'ai besoin de voir les enregistrements de la requête [PRINCIPALE] même s'ils sont à zéro au niveau du [Montant] dans la table [AUTRE]. C'est pourquoi j'ai opté pour la fonction DSum().
Voici ce que je veux faire concrètement (vous saurez me dire si DSum() est la solution):
Je souhaite voir, pour chacun des enregistrements [No1], la somme de tous les [Montant] des enregistrements contenus dans la table [AUTRE].
La table [AUTRE] comporte des enregistrements dont le champ [No2] est lié à la clé primaire [No1] apparaissant dans la requête [PRINCIPALE]. Si je fais afficher simplement la table [AUTRE] dans la requête, je me retrouve dans ma requête à avoir plusieurs lignes pour le même [No1], ce qui pourrait probablement se régler par un regroupement, mais je perds aussi tous les autres enregistrements qui ne comportent pas de [Montant] parce qu'il n'a pas nécessairement d'enregistrement lié à tous les [No1] dans la table [AUTRE]...
Exemple:
Requête [PRINCIPALE]:
[No1] [Nom] [Expression] (DSUM([Montant],[AUTRE],[No2]=[No1])
1 Siège social 200$
2 Établissement A -$
3 Établissement B 50$
Table [AUTRE]
[No] [No2] [Montant]
1 3 25$
2 1 100$
3 1 50$
4 3 25$
5 1 50$
Est-ce plus clair?
Merci encore beaucoup de prendre le temps de m'aider.
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
28 févr. 2020 à 09:59
28 févr. 2020 à 09:59
tu écris que mes deux suggestions ne fonctionnent pas.
peux-tu être plus précis?
peux-tu être plus précis?
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
28 févr. 2020 à 13:16
28 févr. 2020 à 13:16
En fait, votre première suggestion fonctionne en ce qui a trait à la somme des champs que je recherche, mais la deuxième suggestion ne fonctionne pas puisque le système ne reconnaît pas plus les éléments [PRINCIPALE].[No. 1] dans la formule.
Ce qui ne fonctionne pas, par rapport à mes besoins dans votre première suggestion, est que je perds les enregistrements qui n'ont pas de [Montant] dans la table [AUTRE].
Ce qui ne fonctionne pas, par rapport à mes besoins dans votre première suggestion, est que je perds les enregistrements qui n'ont pas de [Montant] dans la table [AUTRE].
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
28 févr. 2020 à 14:49
28 févr. 2020 à 14:49
je ne comprends pas le soucis avec la deuxième suggestion. peux-tu décrire ce qui se passe, pas seulement expliquer pourquoi cela se passe?
.
suggestion d'adaptation de la première suggestion:
.
suggestion d'adaptation de la première suggestion:
SELECT [PRINCIPALE].No1 , [PRINCIPALE].Nom , sum(AUTRE.Montant) FROM [PRINCIPALE] LEFT JOIN AUTRE ON AUTRE.No2 = [PRINCIPALE].[No1] GROUP BY [PRINCIPALE].No1 , [PRINCIPALE].Nom;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
Modifié le 28 févr. 2020 à 18:03
Modifié le 28 févr. 2020 à 18:03
Pour la deuxième suggestion, j'ai simplement un message d'erreur me disant que le système ne reconnaît pas la donnée [PRINCIPALE].[No1].. rien de plus. C'est ce soucis que j'aimerais régler..
Ça me donne l'impression qu'on ne peut pas utiliser les données résultantes d'une requête comme critère dans une fonction DSum().
Votre suggestion d'adaptation de la 1ère suggestion ne fonctionne pas malheureusement..
Je me suis trompée, la fonction Sum() me donne un message d'erreur comme quoi le [No1] ne fait pas partie des expressions spécifiée en tant que partie d'une fonction d'agréation...
C'est donc pourquoi l'autre option qui me vient à l'esprit reste la fonction DSum()..
Ça me donne l'impression qu'on ne peut pas utiliser les données résultantes d'une requête comme critère dans une fonction DSum().
Votre suggestion d'adaptation de la 1ère suggestion ne fonctionne pas malheureusement..
Je me suis trompée, la fonction Sum() me donne un message d'erreur comme quoi le [No1] ne fait pas partie des expressions spécifiée en tant que partie d'une fonction d'agréation...
C'est donc pourquoi l'autre option qui me vient à l'esprit reste la fonction DSum()..
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
Modifié le 28 févr. 2020 à 18:39
Modifié le 28 févr. 2020 à 18:39
et ainsi?
SELECT [PRINCIPALE].[No1] , [PRINCIPALE].Nom , sum(AUTRE.Montant) FROM [PRINCIPALE] LEFT JOIN AUTRE ON AUTRE.No2 = [PRINCIPALE].[No1] GROUP BY [PRINCIPALE].[No1] , [PRINCIPALE].Nom;
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
28 févr. 2020 à 19:19
28 févr. 2020 à 19:19
Non toujours pas..
Toujours le même message d'erreur..
Toujours le même message d'erreur..
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
28 févr. 2020 à 21:47
28 févr. 2020 à 21:47
peux-tu partager ton fichier?
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
28 févr. 2020 à 22:26
28 févr. 2020 à 22:26
Oui, il est assez compliqué par contre, j'espère que vous allez y comprendre quelque chose.. voici mon fichier:
https://drive.google.com/file/d/1wUzzhSTGAnfSn927cpw_VxZFjT7ZP5j6/view?usp=sharing
La requête qui me pose problème porte le nom suivant: [05_01-PLATEFORME]
C'est dans cette requête que je tente d'instaurer la fonction DSum("[NET_DA]" , "[07-DÉPENSES_AUTRES]" , "[07-DÉPENSES_AUTRES].[NoAL_DA]=[05_01-PLATEFORME].[No_AL]).
Merci énormément!
https://drive.google.com/file/d/1wUzzhSTGAnfSn927cpw_VxZFjT7ZP5j6/view?usp=sharing
La requête qui me pose problème porte le nom suivant: [05_01-PLATEFORME]
C'est dans cette requête que je tente d'instaurer la fonction DSum("[NET_DA]" , "[07-DÉPENSES_AUTRES]" , "[07-DÉPENSES_AUTRES].[NoAL_DA]=[05_01-PLATEFORME].[No_AL]).
Merci énormément!
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
28 févr. 2020 à 23:37
28 févr. 2020 à 23:37
j'ai l'impression que tu n'as pas utilisé mes suggestions: où sont-elles dans le fichier?
suggestion:
suggestion:
SELECT [08_00-CHOIX_ALLOC_TABLE].No_AL, [06-ALLOCATIONS_BUDGET].NoET_AL, [03-ÉTABLISSEMENTS].Nom_ET, [08_00-CHOIX_ALLOC_TABLE].Expr1, [03-ÉTABLISSEMENTS].CoUT_ET, [02-UTILISATEURS].Nom_UT, [06-ALLOCATIONS_BUDGET].NoME_AL, [05-MESURES].Titre_ME, [05-MESURES].NoRM_ME, [04-REGROUPEMENTS_M].Titre_RM, [06-ALLOCATIONS_BUDGET].BudCal_AL, sum([07-DÉPENSES_AUTRES].[NET_DA]) FROM (([04-REGROUPEMENTS_M] INNER JOIN [05-MESURES] ON [04-REGROUPEMENTS_M].No_RM = [05-MESURES].NoRM_ME) INNER JOIN (([02-UTILISATEURS] INNER JOIN [03-ÉTABLISSEMENTS] ON [02-UTILISATEURS].Code_UT = [03-ÉTABLISSEMENTS].CoUT_ET) INNER JOIN ([06-ALLOCATIONS_BUDGET] INNER JOIN [08_00-CHOIX_ALLOC_TABLE] ON [06-ALLOCATIONS_BUDGET].No_AL = [08_00-CHOIX_ALLOC_TABLE].No_AL) ON [03-ÉTABLISSEMENTS].No_ET = [06-ALLOCATIONS_BUDGET].NoET_AL) ON [05-MESURES].No_ME = [06-ALLOCATIONS_BUDGET].NoME_AL) left join [07-DÉPENSES_AUTRES] on [07-DÉPENSES_AUTRES].[NoAL_DA]=[08_00-CHOIX_ALLOC_TABLE].No_AL group by [08_00-CHOIX_ALLOC_TABLE].No_AL, [06-ALLOCATIONS_BUDGET].NoET_AL, [03-ÉTABLISSEMENTS].Nom_ET, [08_00-CHOIX_ALLOC_TABLE].Expr1, [03-ÉTABLISSEMENTS].CoUT_ET, [02-UTILISATEURS].Nom_UT, [06-ALLOCATIONS_BUDGET].NoME_AL, [05-MESURES].Titre_ME, [05-MESURES].NoRM_ME, [04-REGROUPEMENTS_M].Titre_RM, [06-ALLOCATIONS_BUDGET].BudCal_AL ;
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
>
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
Modifié le 29 févr. 2020 à 15:17
Modifié le 29 févr. 2020 à 15:17
J'ai tenté de mettre ta suggestion dans ma requête à maintes reprises, mais ça ne veut même pas enregistrer à cause que Sum() ne fonctionne pas et ça me donne aussi une erreur dans l'opérateur JOIN. L'as tu essayé de ton côté? Ça fonctionne?
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
>
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
29 févr. 2020 à 22:54
29 févr. 2020 à 22:54
chez moi, cela fonctionne, en effet.
qu'as-tu tenté précisément? "Sum() ne fonctionne pas"?
quel message d'erreur obtiens-tu ? bizarre que tu aies deux erreurs, je trouve.
qu'as-tu tenté précisément? "Sum() ne fonctionne pas"?
quel message d'erreur obtiens-tu ? bizarre que tu aies deux erreurs, je trouve.
BiankaBo
Messages postés
51
Date d'inscription
lundi 16 avril 2018
Statut
Membre
Dernière intervention
31 janvier 2024
1 mars 2020 à 15:33
1 mars 2020 à 15:33
Ouiiiii !!! Problème résolu !!
J'avais surment oublié des caractères lorsque je l'ai écrit l'autre jour!!!
Je suis vraiment contente que vous ayez pu résoudre mon problème!!
Je commençais à perdre espoir!!
Un énorme merci, vous venez de faire une heureuse ce matin, vraiment!!!!
J'avais surment oublié des caractères lorsque je l'ai écrit l'autre jour!!!
Je suis vraiment contente que vous ayez pu résoudre mon problème!!
Je commençais à perdre espoir!!
Un énorme merci, vous venez de faire une heureuse ce matin, vraiment!!!!