2015-12-07 60 views
0
SELECT id as bid,sku,product_name, 
     (SELECT SUM(piece) FROM sales WHERE uid = bid) as tsa, 
     (SELECT SUM(piece) FROM buying WHERE uid = bid) as taa 
FROM product WHERE ? 

我想在那裏taa - tsa if 0節目查詢請幫助我需要減法Mysql的計算在哪裏

我使用WHERE taa-tsa = 0但不工作

我具有感謝解決

+0

*「我正在使用WHERE taa-tsa = 0」*以及連字符是一個問題。檢查錯誤會告訴你關於(off-topic)的語法錯誤。 –

+0

在mysql中使用'CASE'。我想你正在尋找那個。 –

+0

@NiranjanNRaju看看他們的專欄名稱'taa-tsa' ;-) –

回答

0

如果你想過濾一個SELECT查詢的輸出基於聚合值的內容,那麼你需要在HAVING子句中指定過濾器(WHERE子句用於過濾輸入行)。

因此可以:

SELECT id as bid,sku,product_name, 
    (SELECT SUM(piece) FROM sales WHERE uid = bid) as tsa, 
    (SELECT SUM(piece) FROM buying WHERE uid = bid) as taa 
FROM product 
HAVING tsa=taa 

SELECT ilv.* 
FROM (
    SELECT id as bid,sku,product_name, 
    (SELECT SUM(piece) FROM sales WHERE uid = bid) as tsa, 
    (SELECT SUM(piece) FROM buying WHERE uid = bid) as taa 
    FROM product 
) as ilv 
WHERE tsa=taa 

您的查詢非常糟糕構造。在不知道更多關於數據結構,數據庫和查詢用法的情況下,無法確定查詢應該是什麼樣子。

0

試試這個:

SELECT * FROM (
    SELECT id as bid,sku,product_name, 
      (SELECT SUM(piece) FROM sales WHERE uid = bid) as tsa, 
      (SELECT SUM(piece) FROM buying WHERE uid = bid) as taa 
    FROM product 
) as vw 

WHERE (vw.taa - vw.tsa) = 0