par
zeus » 09 nov. 2006, 16:39
Tu peut également utiliser la fonction SQL
IF() qui permet de tester des résultats directement dans le SELECT
A partir de là, tu peut récupére, en une seule requete, tout les paniers, que leur montant soit supérieur à 60€ ou pas, en prennant en compte les frais de port
NB : @frais_port est une syntaxe ORACLE qui signifie "la variable frais_port", je ne sais pas si elle existe en MySQL. A remplacer par la valeur des frais de port dont tu disposes
Code : Tout sélectionner
SELECT
now() as date,
IF ( SUM(panier.quantite*produit.prix_ttc) > 60,
SUM(panier.quantite*produit.prix_ttc),
SUM(panier.quantite*produit.prix_ttc) + @frais_port
) as total_ttc,
IF ( SUM(panier.quantite*produit.prix_ht) > 60,
SUM(panier.quantite*produit.prix_ht),
SUM(panier.quantite*produit.prix_ht) + @frais_port
) as total_ht,
FROM
panier INNER JOIN produit
ON produit.numero = panier.article
WHERE
panier.client = 'paramClient'
GROUP BY
panier.client
Cette syntaxe est disponible pour MySQL > 3.23
Tu peut également utiliser la fonction SQL [url=http://dev.mysql.com/doc/refman/5.0/fr/control-flow-functions.html]IF()[/url] qui permet de tester des résultats directement dans le SELECT
A partir de là, tu peut récupére, en une seule requete, tout les paniers, que leur montant soit supérieur à 60€ ou pas, en prennant en compte les frais de port ;)
NB : @frais_port est une syntaxe ORACLE qui signifie "la variable frais_port", je ne sais pas si elle existe en MySQL. A remplacer par la valeur des frais de port dont tu disposes
[code]SELECT
now() as date,
IF ( SUM(panier.quantite*produit.prix_ttc) > 60,
SUM(panier.quantite*produit.prix_ttc),
SUM(panier.quantite*produit.prix_ttc) + @frais_port
) as total_ttc,
IF ( SUM(panier.quantite*produit.prix_ht) > 60,
SUM(panier.quantite*produit.prix_ht),
SUM(panier.quantite*produit.prix_ht) + @frais_port
) as total_ht,
FROM
panier INNER JOIN produit
ON produit.numero = panier.article
WHERE
panier.client = 'paramClient'
GROUP BY
panier.client [/code]
Cette syntaxe est disponible pour MySQL > 3.23