2010-03-24 116 views
1

我試圖從子查詢中返回行計數作爲結果集的一部分。這裏是我已經試過了沒有工作的例子:從結果集中的子查詢返回記錄計數

SELECT的recordId
,GroupIdentifier
,計數()爲總
,(SELECT COUNT(
)FROM表WHERE intActingAsBoolean = 1)批准

FROM表
WHERE DATE_FORMAT(DATEVALUE, '%Y%米%d') '之間的startDate' AND '結束日期'

GROU P BY groupIdentifier

我正在試圖返回的「批准」是爲分組值,其中intActingAsBoolean = 1。我也試圖通過給主查詢表別名修改where子句中的記錄數並應用AND子句將子查詢中的groupidentifier與主查詢進行匹配。這些都沒有返回正確的結果。查詢寫入將返回表中的所有記錄,其中intActingAsBoolean = 1。

此查詢正在針對MySQL數據庫運行。

回答

0

這個怎麼樣的黑客做沒有一個子查詢:

SELECT 
    recordID, 
    GroupIdentifier, 
    COUNT() AS total, 
    SUM(intActingAsBoolean = 1) AS Approved 
FROM table 
WHERE date_format(Datevalue, '%Y%m%d') BETWEEN 'startDate' AND 'endDate' 
GROUP BY groupIdentifier 
+0

謝謝。我一直在研究這個核心功能已經有四天了,而且我知道我正在以這種錯誤的方式看待這個問題,並且對此發生了變化。 – 2010-03-24 01:59:33

0

這可能不是最好的方法,但你可以寫,將返回你正在尋找的值的函數。