2013-01-17 76 views
1

我想返回結果集中的計數值。此計數值使用與主要查詢不同的條件。是否有可能使用子查詢來實現這一點,即在單個查詢中?SQL - 子查詢可以與主查詢有不同的條件嗎?

SELECT ID, DESC, 
(SELECT COUNT(*) FROM TABLE1 WHERE TABLE1.ID=ID AND STATUS_ID=2) 
COUNT FROM TABLE1 WHERE STATUS_ID=6 
+1

您是否嘗試過此查詢到底是什麼?它是否按預期工作? –

+0

我試過查詢。計數值不會按預期返回。 – Radhika

+0

嘗試使用別名來區分主查詢和子查詢字段。 – Lourens

回答

0

是的。

但是,如果使用同一個表中不止一次查詢/子查詢,你應該使用不同的別名,要清楚你選擇或比較

SELECT t1.ID, t1.DESC, 
    (SELECT COUNT(*) 
    FROM TABLE1 t2 
    WHERE t1.ID=t2.ID AND t2.STATUS_ID=2) COUNT 
FROM TABLE1 t1 
WHERE t1.STATUS_ID=6 
+0

是的。這有助於。我能夠正確地恢復計數。 – Radhika