我有以下查询:
SELECT login_id, staff, name, COUNT( company ) AS resp_1
FROM trespondents
JOIN tresults_new
ON respondents.login_id = tresults_new.company
WHERE tresults_new.sdate = 'NOV2014'
AND company = 'hh77yt6'
GROUP BY name
在表tresults_new
中,有两个日期的数据:
MAY2014
NOV2014
我遇到问题的查询部分是COUNT( company ) AS resp_1
- 在上面的查询中,它会带回 158 。这实际上是两者 MAY2014和NOV2014的总和。
从上面的查询中可以看出,我试图恢复2014年11月的总数,因此:
WHERE tresults_new.sdate = 'NOV2014'
上面的查询我哪里出错了,有人能找出我出错的地方吗?非常感谢任何帮助。
修改
要显示tresults_new只有上述两个日期,请运行以下代码:
SELECT * FROM tresults_new GROUP BY sdate
输出(编辑以删除可识别信息):
result_id timestamp sdate
4293 2014-06-16 14:26:24 MAY2014
1 2014-11-24 11:26:20 NOV2014
答案 0 :(得分:0)
试试这个
SELECT login_id, staff, name, COUNT( company ) AS resp_1
FROM trespondents
JOIN (select * from tresults_new where sdate= 'NOV2014' and company = 'hh77yt6') aa
ON respondents.login_id = aa.company
GROUP BY name