Bonjour,
Comment faire la soustraction de deux valeurs d'un même champ en Access
Cordialement,
DIOP
Bonjour,
Comment faire la soustraction de deux valeurs d'un même champ en Access
Cordialement,
DIOP
Sont-ils partie de champ à valeurs multiples, ou deux valeurs dans différents dossiers?
Peut-etre, http://allenbrowne.com/subquery-01.html
Get the value in another record
[QUOTE=orange;266283]Sont-ils partie de champ à valeurs multiples, ou deux valeurs dans différents dossiers?
Peut-etre, http://allenbrowne.com/subquery-01.html
Get the value in another record
L’état ci-dessus provient d’une requête.
Je voudrais avoir une zone de texte ou je mettrai déficit qui va être la différence entre les deux montants en rouge sur le même état.
l' exécution de la requête donne toujours deux enregistrements. A partir des deux valeurs affichées du champ TOTAL, je veux afficher sur un controls par exemple deficit la différence des deux valeurs du champ TOTAL.
Cordialement,
Normalement avec des tables normalisées vous ne auriez pas un champ total. Vous souhaitez conserver les détails et, si besoin, vous auriez une requête pour calculer les "totaux".
Je ne peux pas lire les champs dans les images. Si vous obtenez toujours deux enregistrements de la requête, comment sont les dossiers chacun identifié?
Pouvez-vous envoyer la requête SQL?
Ma compréhension est que vous exécutez une requête et il renvoie toujours deux dossiers, et que vous souhaitez soustraire les valeurs de champ de deux totaux et le mettre dans une zone de texte, non?
Bonjour,
C'est exactement ça . Ci-dessous la requete SQL:
SELECT TBL_MVT_CPT_A_MVT_CPT.Date_Mvt, TBL_DE_COMPTE.Nom_PDV_D_CPTE, TBL_DE_COMPTE.Prenom_PDV_D_CPTE, TBL_A_COMPTE.Nom_PDV, TBL_A_COMPTE.Prenom_PDV, TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt, Sum(TBL_MVT_CPT_A_MVT_CPT.Montant_Mvt) AS TOTAL
FROM TBL_A_COMPTE INNER JOIN (TBL_DE_COMPTE INNER JOIN TBL_MVT_CPT_A_MVT_CPT ON TBL_DE_COMPTE.Num_Tel_D_CPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_D_CPTE) ON TBL_A_COMPTE.Num_Tel_A_COMPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_A_COMPTE
GROUP BY TBL_MVT_CPT_A_MVT_CPT.Date_Mvt, TBL_DE_COMPTE.Nom_PDV_D_CPTE, TBL_DE_COMPTE.Prenom_PDV_D_CPTE, TBL_A_COMPTE.Nom_PDV, TBL_A_COMPTE.Prenom_PDV, TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt
HAVING (((TBL_MVT_CPT_A_MVT_CPT.Date_Mvt)=[DONNER LA DATE MVT]) AND ((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM DE CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[DONNER PRENOM DE CPT]) AND ((TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt) In ('Retour','Envoi'))) OR (((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM A CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[PRENOM A CPTE]));
Bonjour,
C'est exactement ça . Ci-dessous la requete SQL:
SELECT TBL_MVT_CPT_A_MVT_CPT.Date_Mvt, TBL_DE_COMPTE.Nom_PDV_D_CPTE, TBL_DE_COMPTE.Prenom_PDV_D_CPTE, TBL_A_COMPTE.Nom_PDV, TBL_A_COMPTE.Prenom_PDV, TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt, Sum(TBL_MVT_CPT_A_MVT_CPT.Montant_Mvt) AS TOTAL
FROM TBL_A_COMPTE INNER JOIN (TBL_DE_COMPTE INNER JOIN TBL_MVT_CPT_A_MVT_CPT ON TBL_DE_COMPTE.Num_Tel_D_CPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_D_CPTE) ON TBL_A_COMPTE.Num_Tel_A_COMPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_A_COMPTE
GROUP BY TBL_MVT_CPT_A_MVT_CPT.Date_Mvt, TBL_DE_COMPTE.Nom_PDV_D_CPTE, TBL_DE_COMPTE.Prenom_PDV_D_CPTE, TBL_A_COMPTE.Nom_PDV, TBL_A_COMPTE.Prenom_PDV, TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt
HAVING (((TBL_MVT_CPT_A_MVT_CPT.Date_Mvt)=[DONNER LA DATE MVT]) AND ((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM DE CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[DONNER PRENOM DE CPT]) AND ((TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt) In ('Retour','Envoi'))) OR (((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM A CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[PRENOM A CPTE]));
Bonjour,
Quelqu'un a une réponse par rapport à ma question ci-dessus.
Cordialement,
For anyone following this thread, here is the SQL in a different format
The difference in the 2 summary records is the "envoi" and "retour".Code:SELECT TBL_MVT_CPT_A_MVT_CPT.Date_Mvt , TBL_DE_COMPTE.Nom_PDV_D_CPTE , TBL_DE_COMPTE.Prenom_PDV_D_CPTE , TBL_A_COMPTE.Nom_PDV , TBL_A_COMPTE.Prenom_PDV , TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt , Sum(TBL_MVT_CPT_A_MVT_CPT.Montant_Mvt) AS TOTAL FROM TBL_A_COMPTE INNER JOIN (TBL_DE_COMPTE INNER JOIN TBL_MVT_CPT_A_MVT_CPT ON TBL_DE_COMPTE.Num_Tel_D_CPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_D_CPTE) ON TBL_A_COMPTE.Num_Tel_A_COMPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_A_COMPTE GROUP BY TBL_MVT_CPT_A_MVT_CPT.Date_Mvt , TBL_DE_COMPTE.Nom_PDV_D_CPTE , TBL_DE_COMPTE.Prenom_PDV_D_CPTE , TBL_A_COMPTE.Nom_PDV , TBL_A_COMPTE.Prenom_PDV , TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt HAVING (((TBL_MVT_CPT_A_MVT_CPT.Date_Mvt)=[DONNER LA DATE MVT]) AND ((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM DE CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[DONNER PRENOM DE CPT]) AND ((TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt) In ('Retour','Envoi'))) OR (((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM A CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[PRENOM A CPTE]));
Perhaps you could do 1 calculation for "envoi" and another for "retour".
Then subtract one from the other.
La différence entre les deux comptes rendus analytiques est le "envoi" et "retour".
Peut-être que vous pourriez faire une calcul pour "envoi" et l'autre pour "retour".
Puis soustraire l'un de l'autre.
UNTESTED NON TESTÉ
TotalRetour
Total_EnvoiCode:SELECT TBL_MVT_CPT_A_MVT_CPT.Date_Mvt , TBL_DE_COMPTE.Nom_PDV_D_CPTE , TBL_DE_COMPTE.Prenom_PDV_D_CPTE , TBL_A_COMPTE.Nom_PDV , TBL_A_COMPTE.Prenom_PDV , TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt , Sum(TBL_MVT_CPT_A_MVT_CPT.Montant_Mvt) AS TOTAL_Retour FROM TBL_A_COMPTE INNER JOIN (TBL_DE_COMPTE INNER JOIN TBL_MVT_CPT_A_MVT_CPT ON TBL_DE_COMPTE.Num_Tel_D_CPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_D_CPTE) ON TBL_A_COMPTE.Num_Tel_A_COMPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_A_COMPTE GROUP BY TBL_MVT_CPT_A_MVT_CPT.Date_Mvt , TBL_DE_COMPTE.Nom_PDV_D_CPTE , TBL_DE_COMPTE.Prenom_PDV_D_CPTE , TBL_A_COMPTE.Nom_PDV , TBL_A_COMPTE.Prenom_PDV , TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt HAVING (((TBL_MVT_CPT_A_MVT_CPT.Date_Mvt)=[DONNER LA DATE MVT]) AND ((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM DE CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[DONNER PRENOM DE CPT]) AND ((TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt) = 'Retour')) OR (((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM A CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[PRENOM A CPTE]));
Code:SELECT TBL_MVT_CPT_A_MVT_CPT.Date_Mvt , TBL_DE_COMPTE.Nom_PDV_D_CPTE , TBL_DE_COMPTE.Prenom_PDV_D_CPTE , TBL_A_COMPTE.Nom_PDV , TBL_A_COMPTE.Prenom_PDV , TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt , Sum(TBL_MVT_CPT_A_MVT_CPT.Montant_Mvt) AS TOTAL_Envoi FROM TBL_A_COMPTE INNER JOIN (TBL_DE_COMPTE INNER JOIN TBL_MVT_CPT_A_MVT_CPT ON TBL_DE_COMPTE.Num_Tel_D_CPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_D_CPTE) ON TBL_A_COMPTE.Num_Tel_A_COMPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_A_COMPTE GROUP BY TBL_MVT_CPT_A_MVT_CPT.Date_Mvt , TBL_DE_COMPTE.Nom_PDV_D_CPTE , TBL_DE_COMPTE.Prenom_PDV_D_CPTE , TBL_A_COMPTE.Nom_PDV , TBL_A_COMPTE.Prenom_PDV , TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt HAVING (((TBL_MVT_CPT_A_MVT_CPT.Date_Mvt)=[DONNER LA DATE MVT]) AND ((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM DE CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[DONNER PRENOM DE CPT]) AND ((TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt) = 'Envoi')) OR (((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM A CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[PRENOM A CPTE]));
Bonjour,
Apres avoir fait les requêtes séparément comment faire maintenant la soustraction pour qu'on puisse avoir le résultat dans un autre champ.
Cordialement,
Avez-vous essayé les deux chaînes SQL, et avez-vous les totaux vous avez besoin pour la soustraction? Si oui, vous pourriez essayer
Peut-être, Sélectionner les champs que vous voulez et TotalEnvoi -TotalRetour que FinalTotal partir
sélectionner ... Envoi
UNION
Sélectionnez retour
Je ne suis pas sûr à ce sujet. Peut-être quelqu'un qui travaille principalement avec SQL pourrait répondre.
Bonjour,
Est il possible de lancer separement les deux requetes à partir de code VB(exécution requete selection à partir de VB) et récupérer dans deux variables et ensuite faire la différence des deux variables.
Cordialement,
Il est possible. Vous pouvez l'essayer et voir ce qui se passe.
Il vaut la peine de faire un peu de l'expérimentation.
Vous pouvez poster une copie de votre base de données. D'autres lecteurs peuvent avoir des commentaires / suggestions.