我可以選擇價格總和(稅)小於價格,我正在執行查詢但我收到錯誤如何從兩個不同的表中選擇列(A,B)其中總和(列表A)小於columntableB
select b.price
from tableA a
inner join tableB b on b.idprice = a.idprice where sum(tax)<price
group by a.idprice,b.price
我可以選擇價格總和(稅)小於價格,我正在執行查詢但我收到錯誤如何從兩個不同的表中選擇列(A,B)其中總和(列表A)小於columntableB
select b.price
from tableA a
inner join tableB b on b.idprice = a.idprice where sum(tax)<price
group by a.idprice,b.price
我覺得你ORI ginal方法將使用having
子句而不是where
來工作:
select b.price
from tableA a inner join
tableB b
on b.idprice = a.idprice
group by a.idprice, b.price
having sum(tax) < b.price;
所以是這樣的:
SELECT t.*,s.*
FROM TableA t
INNER JOIN(SELECT idprice,sum(tax) as sum_tax
FROM TableB
GROUP BY idprice) s
ON(t.idprice = s.idprice and t.price < s.sum_tax)
或者,如果價格表也應該被概括:
SELECT t.idprice,sum(t.price),max(s.sum_tax)
FROM TableA t
INNER JOIN(SELECT idprice,sum(tax) as sum_tax
FROM TableB
GROUP BY idprice) s
ON(t.idprice = s.idprice)
GROUP BY t.idprice
having sum(t.price) < max(s.sum_tax)
您得到的錯誤是什麼? – BuddingProgrammer
你可以發佈架構嗎?您正在嘗試的查詢以及您收到的錯誤將會有很大幫助。也許您可以使用http://sqlfiddle.com/ – kkaosninja
重現它。聚合可能不會出現在WHERE子句中,除非它位於包含在HAVING子句或選擇列表中的子查詢中,並且要聚合的列是外部引用。 my erorr – SAMAN