Jump to content

Commande en attente de réapprovisionnement - Requête SQL


Recommended Posts

Bonjour à tous !

 

Me revoilà avec un casse-tête !

 

Il s'agit d'une requête SQL (que j'exécute directement dans la BDD de Prestashop), j'ai du mal à arriver à ce que je veux...

Mon but : Afficher le numéro de commande et la (les) référence(s) produit des commandes qui sont actuellement en attente de réapprovisionnement.

 

Si j'utilise cette requête :

SELECT ps_order_history.id_order, ps_order_history.id_order_state, `date_add`
FROM ps_order_history
GROUP BY `id_order`
ORDER BY `date_add` DESC

 

Je ne peux pas mettre le "WHERE ps_order_history.id_order_state = 9", car la syntaxe SQL ne le permet pas.

 

Si j'utilise cette requête :

SELECT ps_order_history.id_order, ps_order_history.id_order_state,  MIN(ps_order_history.date_add) AS LastDate, ps_order_detail.product_reference, ps_order_detail.product_quantity_in_stock, ps_product.quantity
FROM ps_order_history, ps_order_detail, ps_product
WHERE ps_order_history.id_order = ps_order_detail.id_order
AND ps_product.id_product = ps_order_detail.product_id
AND ps_product.quantity < 0
GROUP BY ps_order_detail.id_order, ps_order_detail.product_reference ,ps_order_history.id_order, ps_order_history.id_order_state
HAVING (((ps_order_history.id_order_state)=9));

 

Ca ne va pas car il m'affiche toutes les commandes qui ont eu le statut en attente de réappro. et non pas celles qui l'ont comme statut actuel.

 

Bref c'est à s'arracher les cheveux. J'ai aussi essayé avec des requêtes imbriquées mais ne suis pas parvenue au résultat voulu.

 

Est-ce que quelqu'un a déjà fait ça ? ou saurait me donner des pistes ?

Je ne suis pas une débutante en SQL mais là à force d'essayer je tourne en rond...

 

Merci d'avance pour ceux qui s'intéresseront à ma demande.

 

Bonne journée,

Link to comment
Share on other sites

Si je fais :

SELECT id_order, id_order_state, date_add
FROM ps_order_history
WHERE ps_order_history.date_add = (SELECT MAX(ps_order_history.date_add) FROM ps_order_history WHERE ps_order_history.id_order_state = 9)

 

Il ne retourne d'un enregistrement (au lieu de 2), pourquoi ? je n'ai pourtant pas de GROUP BY sur id_order_state...

Link to comment
Share on other sites

  • 4 months later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...