2010-11-15 36 views
1

我試圖做的是在表中找到小於其他字段最大值的值減去數值。例如:MySQL SELECT MAX在方程中

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

但是,這是行不通的!我的連接都很好,查詢運行時沒有WHERE語句的第二部分,但是如果您希望查看代碼的其餘部分以獲取更多信息,請告訴我!

乾杯!

閃耀*

ps的所有值都

+0

顯示完整的查詢,你會得到你對預期結果的結果。 – Daniel 2010-11-15 06:01:42

回答

2

下面是一個工作示例使用加入整數,嘗試將其應用到你的:

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 
      ); 

如果這是你沒有什麼尋找,請讓我知道,我會更新它。

+0

啊,所以你必須分開聲明的SELECT和MAX部分,很酷,我會嘗試! – Sparkles 2010-11-15 06:03:18

+0

真棒謝謝@OMG小馬,簡單的錯字:) – 2010-11-15 06:06:16

+0

謝謝尼科,它完美的作品! :) – Sparkles 2010-11-15 06:10:19

0

使用HAVING MAX(...)

喜歡的東西:

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_;