teuteu_
Messages postés16Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention20 mai 2005
-
9 mai 2005 à 11:47
teuteu_
Messages postés16Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention20 mai 2005
-
10 mai 2005 à 15:59
je souhaiterai faire une requete qui calcule le total par mois, avec
les frais de port) des commandes livrées (date_livraison renseignée).
j'ai fait une requete de ce type:
SELECT (Sum(T_ligne_commande.prix_lig_cde*T_ligne_commande.qte_lig_cde)+Sum(T_commande.frais_port))
AS Expr1, Month(T_ligne_commande.date_livraison) AS Expr2
FROM T_ligne_commande, T_commande
WHERE (((Year([T_ligne_commande].[date_livraison]))=2005) AND ((T_ligne_commande.num_cde)=[T_commande].[num_cde]))
GROUP BY Month(T_ligne_commande.date_livraison);
le souci, c'est que de cette manière, les frais de port sont comptés
plusieurs fois, pour chaque ligne de commande, c'est un peu emmerdant!
je souhaiterai faire le total des lignes de commande, et y ajouter les
frais de port pour chaque commande, mais je ne sais pas comment faire.
Starec
Messages postés152Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention 5 mars 2007 9 mai 2005 à 12:28
Je sais, mais le fait de faire la requête en mode graphique, me permet de contrôler rapidement mes données, surtout quand tu as des sommes et des regroupements à faire, ensuite je fais un copier coller, et je contrôle mes parenthèses, et mes variables, essaye et je suis sûr que tu résoudra ton problème, car à permière vu je ne vois pas.
teuteu_
Messages postés16Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention20 mai 2005 9 mai 2005 à 14:11
ta requete sur les frais de port passe, mais moi , je souhaiterai
additionner les frais de ports et le total par ligne de commande.
lorsque je vire le jointure dans ma requete initiale, j'obtiens un
résultat faux, les différentes valeurs ont été additionnées plusieurs
fois par access:
SELECT
(Sum(T_ligne_commande.prix_lig_cde*T_ligne_commande.qte_lig_cde)+Sum(T_commande.frais_port))
AS Expr1, Month(T_ligne_commande.date_livraison) AS Expr2
dam84
Messages postés40Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention17 mai 2005 9 mai 2005 à 15:04
Eh...
Tu es obligé de faire 2 requettes
Tu ne peux pas avoir la sum des frais de ports et le total par ligne dans une seul requette
Il te faut donc 2 requettes
fais ta premiere requette
select sum (frais_port),null as <sum>, null as date_liv from T_commande where machin bidule union
select null, (T_ligne_commande.prix_lig_cde*T_ligne_commande.qte_lig_cde), Month(T_ligne_commande.date_livraison) AS date_liv from T_ligne_commande
dam84
Messages postés40Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention17 mai 2005 9 mai 2005 à 16:05
les null te servent juste a definir le nombre de colonnes que les 2 select vont te retourner
Le 1er select retourne 3 colonnes
Dans la 1er il met la sum et dans les 2 autres il ne met rien
Le 2eme select ne met rien dans la 1er colonne et rempli ensuite les 2 autres colonnes
antoineraymond
Messages postés99Date d'inscriptionmardi 6 avril 2004StatutMembreDernière intervention 4 décembre 2008 9 mai 2005 à 17:33
Si tous les les frais de port sont les même tu peux faire ça:
SELECT (Sum(T_ligne_commande.prix_lig_cde*T_ligne_commande.qte_lig_cde)+MAX(T_commande.frais_port)) AS Expr1, Month(T_ligne_commande.date_livraison) AS Expr2
FROM T_ligne_commande, T_commande
WHERE (((Year([T_ligne_commande].[date_livraison]))=2005) AND ((T_ligne_commande.num_cde)=[T_commande].[num_cde]))
GROUP BY Month(T_ligne_commande.date_livraison);
teuteu_
Messages postés16Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention20 mai 2005 10 mai 2005 à 08:36
merci,c cool mais les frais de ports ne sont pas les mêmes, ce serait trop simple!
sinon Dam, pour les "null", c ok j'ai compris, mais les deux requetes
avec UNION ne passent pas, les frais de port sont bons, mais pour les
deux autres champs, j'obtiens des hiéroglyphes!
voici ma requete:
select sum (frais_port),null,null
from T_commande
UNION select null,
Sum(T_ligne_commande.prix_lig_cde*T_ligne_commande.qte_lig_cde),
Month(T_ligne_commande.date_livraison) AS date_liv
from T_ligne_commande
where Year(date_livraison)=2005
group by Month(T_ligne_commande.date_livraison);
Quand j'essaye de mettre dans le premier Select: null as <sum>, null as date_liv, la requete ne passe pas