2013-04-10 98 views
0

一行我有一個表有三列如下:減去兩個結果

SELECT * FROM table1 WHERE status="ok" 
# Result 1 
/*-------------------------------------------- 
    qnt  name  status 
    10  prod1  ok 
    10  prod2  ok 
--------------------------------------------*/ 


SELECT * FROM table1 WHERE status="deleted" 
# Result 2 
/*-------------------------------------------- 
    qnt  name  status 
    2  prod1  deleted 
    3  prod2  deleted 
--------------------------------------------*/ 

我想造成這樣的(這可能嗎?):

# Result3 = (Result 1) - (Result 2) 
/*-------------------------------------------- 
    qnt  name 
    8  prod1 
    7  prod2 
--------------------------------------------*/ 

回答

1
SELECT 
    ok.qnt - deleted.qnt AS qnt, 
    ok.name 
FROM 
    (SELECT * FROM table1 WHERE status="ok") ok 
LEFT JOIN 
    (SELECT * FROM table1 WHERE status="deleted") deleted 
    ON ok.name = deleted.name 
+0

它的工作,謝謝! – 2013-04-10 19:46:39