yomguaille Posted July 12, 2021 Share Posted July 12, 2021 Bonjour, J'ai établi une requête SQL pour ma boutique afin d'obtenir le détail du contenu de mes commandes. Elle fonctionne bien à ceci près qu'en vérifiant les quantités obtenues, il semble que des ajouts se fassent. Exemple : - 3 commandes contiennent le même article vendu 2 fois (à chaque commande) => quantités réellement vendues = 6 - quantités retournées par ma requête = 9 <=> il semble qu'au 6 quantités réellement vendues, ma requête ajoute 1 quantité par vente réalisée ; or, comme j'ai réalisé 3 ventes, alors il ajoute 3 à 6. SELECT o.`id_order` as "Commande", o.`payment`as "Paiement", p.`reference` as "Ref. produit", pl.`name` as "Nom produit", p.`wholesale_price` as "Prix d'achat", od.`product_price` as "PU HT", od.`reduction_percent` as "Réduc %", (od.`reduction_amount`/1.2) as "Réduc HT", od.`unit_price_tax_excl` as "Prix après remise HT", od.`product_quantity` as "Qtt", od.`total_price_tax_excl` as "Total HT", o.`invoice_date` as "Date facturation" FROM `ps_orders` o LEFT JOIN `ps_order_detail` od USING(`id_order`) LEFT JOIN `ps_customer` c USING (`id_customer`) LEFT JOIN `ps_product` p ON (od.`product_id` = p.`id_product`) INNER JOIN `ps_product_lang` pl ON (pl.`id_product` = p.`id_product`) WHERE o.`invoice_date` > "2021-07-08 00:00:01" AND o.`invoice_date` < "2021-07-09 23:59:59" AND pl.`id_lang` = 2 Quelqu'un saurait m'aider à dépatouiller ça ? Merci. Yomguaille Link to comment Share on other sites More sharing options...
doekia Posted July 12, 2021 Share Posted July 12, 2021 Remplacer vos 2 USING (using sert à définir l'index à privilégier en remplacement de celui décidé par l'optimiseur) par la jointure ON pertinente INNER JOIN `ps_order_detail` od on od.`id_order` = o.id_order INNER JOIN `ps_customer` c on c.`id_customer` = c.id_customer Link to comment Share on other sites More sharing options...
yomguaille Posted July 12, 2021 Author Share Posted July 12, 2021 Merci doekia mais je génère une erreur 500 avec cette modification. Voici ma requête après la modification que tu suggères : SELECT o.`id_order` as "Commande", o.`payment`as "Paiement", p.`reference` as "Ref. produit", pl.`name` as "Nom produit", p.`wholesale_price` as "Prix d'achat", od.`product_price` as "PU HT", od.`reduction_percent` as "Réduc %", (od.`reduction_amount`/1.2) as "Réduc HT", od.`unit_price_tax_excl` as "Prix après remise HT", od.`product_quantity` as "Qtt", od.`total_price_tax_excl` as "Total HT", o.`invoice_date` as "Date facturation" FROM `ps_orders` o INNER JOIN `ps_order_detail` od on od.`id_order` = o.id_order INNER JOIN `ps_customer` c on c.`id_customer` = c.id_customer LEFT JOIN `ps_product` p ON (od.`product_id` = p.`id_product`) INNER JOIN `ps_product_lang` pl ON (pl.`id_product` = p.`id_product`) WHERE o.`invoice_date` > "2021-07-08 00:00:01" AND o.`invoice_date` < "2021-07-09 23:59:59" AND pl.`id_lang` = 2 Yomguaille Link to comment Share on other sites More sharing options...
doekia Posted July 12, 2021 Share Posted July 12, 2021 Tapez la modif à la main le copier-coller depuis le forum injecte des caractères "moribond" Link to comment Share on other sites More sharing options...
yomguaille Posted July 15, 2021 Author Share Posted July 15, 2021 Bonjour doekia, J'ai tapé la modification à la main. PrestaShop me retourne une nouvelle erreur : Type error: Argument 1 passed to PrestaShop\PrestaShop\Adapter\SqlManager\SqlQueryValidator::getFromKeywordError() must be of the type array, bool given, called in /var/www/prod/src/Adapter/SqlManager/SqlQueryValidator.php on line 88 [Symfony\Component\Debug\Exception\FatalThrowableError 0] Vois-tu ce que ça peut être ? Encore merci pour ton aide. Link to comment Share on other sites More sharing options...
doekia Posted July 15, 2021 Share Posted July 15, 2021 La requete SQL est parfaite, mais le validateur du gestionnaireSQL de la version 1.7.7.5 est une vaste blague. D'ailleurs le code d'origine crash de la même manière Exécutez votre requete depuis phpmyadmin Link to comment Share on other sites More sharing options...
coeos.pro Posted July 15, 2021 Share Posted July 15, 2021 Le gestionnaire SQL a toujours été une catastrophe à utiliser, as tu testé mon module gratuit https://www.coeos.pro/fr/modules-prestashop/118-big-data-les-donnees-sql-en-csv-avec-facilite.html ? Link to comment Share on other sites More sharing options...
yomguaille Posted July 15, 2021 Author Share Posted July 15, 2021 OK, merci doekia. J'en resterai donc là. Je verrai avec l'équipe technique qui gère mon site la possibilité de traiter la requête via PhpMyAdmin. Merci pour le suivi et excellente fin d'après-midi. Yomguaille Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now