2017-09-15 1 views
-1

Je lance la requête suivante sur la table avec plusieurs enregistrements ayant des champs de quantité différents mais le même ID.Sélectionner une requête dans une requête de sélection

SELECT MIN(quantity) 
    FROM (SELECT * 
      FROM `ready_for_delivery` 
      WHERE joborderid LIKE 00065 
      ORDER BY joborderid DESC) a 
GROUP BY quantity 

Il renvoie toutes les valeurs et non la valeur minimale. Des idées pourquoi? Merci d'avance.

+0

Oui, mais plutôt qu'une explication, préférez-vous une solution? – Strawberry

+0

Je serais heureux d'avoir une solution –

+1

Dans cet esprit, voir https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to- me-to-be-a-very-simple-sql-query – Strawberry

Répondre

0

Je pense que c'est ce que vous recherchez:

SELECT MIN(quantity) as 'Min' FROM (SELECT * FROM `ready_for_delivery` WHERE joborderid LIKE 00065 ORDER BY joborderid DESC)a 

Si vous êtes seulement après une seule valeur, vous ne devriez pas utiliser un group by.

Définition de Groupe par:

Une clause GROUP BY travaille sur les lignes renvoyées par une requête en résumant les lignes identiques dans un seul/groupe distinct et renvoie une seule ligne avec la synthèse pour chaque groupe, en utilisant approprié fonction d'agrégat dans la liste SELECT , comme

  • COUNT()
  • SUM()
  • MIN()
  • MAX()
  • AVG().