2010-03-24 104 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

这可能不是最好的方法,但你可以写,将返回你正在寻找的值的函数。