2010-11-15 41 views
1

Ce que j'essaie de faire est de trouver des valeurs dans un tableau qui sont inférieures au MAX d'un autre champ, moins une valeur numérique. Par exemple:MySQL SELECT MAX dans l'équation

...WHERE some_table.value_1 = 0 AND another_table.value_2 <= (SELECT MAX(another_table.value_3) - 5) ORDER BY... 

Cependant, cela ne fonctionne pas! Mes jointures sont très bien, et la requête s'exécute sans la 2ème partie de l'instruction WHERE, mais si vous souhaitez voir le reste du code pour plus d'informations, faites le moi savoir!

À la votre!

Sparkles *

ps toutes les valeurs sont des nombres entiers

+0

Afficher la requête complète et le résultat que vous obtenez le résultat par rapport à vos attentes. – Daniel

Répondre

2

Voici un exemple de travail avec des jointures, essayez de l'appliquer à la vôtre:

SELECT  * 
FROM   table1 t1 
INNER JOIN table2 t2 
    ON  t1.join_field = t2.join_field 
WHERE   t1.some_field = 1 
    AND  t2.other_field <= (
        SELECT (MAX(t22.third_field) - 5) 
        FROM table2 t22 
      ); 

Si ce n'est pas exactement ce que vous recherche, s'il vous plaît faites le moi savoir et je vais le mettre à jour.

+0

Ahh donc vous devez séparer les parties SELECT et MAX de la déclaration, cool, je vais essayer ça! – Sparkles

+0

Génial merci @OMG Ponies, simple faute de frappe :) –

+0

Merci Nico, ça marche parfaitement! :) – Sparkles

0

utilisation AYANT MAX (...)

Quelque chose comme:

SELECT MIN(p.price) AS price, p.pricegroup 
FROM articles_prices AS p 
_YOUR_JOINED_TABLE_ 
WHERE p.articleID=10 
GROUP BY p.pricegroup 
HAVING MAX(p.price) > _VALUE_FROM_JOINED_TABLE_;