带有计数子查询的MYSQL内部联接
我有一个Mysql查询,它从两个具有内部联接的表中选择一些列。它应该从一个表列中计算“Y”值,并使用Group By命令重新计算该值 这是我的疑问:带有计数子查询的MYSQL内部联接,mysql,sql,join,Mysql,Sql,Join,我有一个Mysql查询,它从两个具有内部联接的表中选择一些列。它应该从一个表列中计算“Y”值,并使用Group By命令重新计算该值 这是我的疑问: SELECT (SELECT Count(tblinterview.Contacted) FROM tblinterview WHERE tblinterview.Contacted = "Y") as Contact_Y , tbldata.RegionID, tbldata.BranchCode, tbldata.BranchDesc, tb
SELECT (SELECT Count(tblinterview.Contacted) FROM tblinterview WHERE tblinterview.Contacted = "Y")
as Contact_Y , tbldata.RegionID, tbldata.BranchCode, tbldata.BranchDesc, tbldata.CampaignID, tblinterview.EndTime
FROM tbldata INNER JOIN tblinterview
WHERE tblinterview.DataID = tbldata.DataId
AND tblinterview.Complete = "Y"
GROUP BY tbldata.BranchCode, tbldata.RegionID, tblinterview.EndTime
我的结果集是:
其中,所有联系人是所有记录的总计数,而不是分组计数
Contact_Y RegionID BranchCode BranchDesc CampaignID EndTime
1407 1 9725 Dada Motors 31 2012-01-26 12:51:12
1407 1 9725 Dada Motors 31 2012-01-31 10:25:18
1407 1 9725 Dada Motors 31 2012-02-01 11:30:37
1407 1 9725 Dada Motors 31 2012-02-01 14:48:57
1407 3 9732 Ballito Autohaus 37 2012-01-16 15:04:12
1407 3 9732 Ballito Autohaus 46 2012-01-18 11:59:53
1407 3 9732 Ballito Autohaus 31 2012-01-20 14:26:12
1407 3 9732 Ballito Autohaus 31 2012-01-20 16:05:48
有人能解释一下我的问题出在哪里吗?试试看
SELECT
Count(tblinterview.Contacted) as Contact_Y,
tbldata.RegionID,
tbldata.BranchCode,
tbldata.BranchDesc,
tbldata.CampaignID,
tblinterview.EndTime
FROM
tbldata INNER JOIN tblinterview
ON (tblinterview.DataID = tbldata.DataId
AND tblinterview.Contacted = "Y")
GROUP BY
tbldata.BranchCode,
tbldata.RegionID,tblinterview.EndTime
试试这个
我们能跳过解释,给你一个正确的答案吗?@草莓,我们知道答案也会有用的谢谢!)我们能跳过解释,给你一个正确的答案吗?@草莓,我们知道答案也会有用的谢谢!)谢谢,但这是我的不足之处:“选择计数(tblinterview.Contacted)作为联系人_Y”我只需要在tblinterview.Contacted=“Y”的位置计算此计数谢谢,但这是我的不足之处:“选择计数(tblinterview.Contacted)作为联系人_Y”我只需要在tblinterview.Contacted=“Y”的位置计算此计数如果查询不起作用,你能给出具有期望结果的样本数据吗?491243,你能看看熟悉的问题吗:如果查询不起作用,你能给出具有期望结果的样本数据吗?491243,你能看看熟悉的问题吗:
SELECT (SELECT Count(s.Contacted)
FROM tblinterview s
WHERE s.Contacted = "Y" AND
tbldata .DataID = s.DataID) as Contact_Y ,
tbldata.RegionID,
tbldata.BranchCode,
tbldata.BranchDesc,
tbldata.CampaignID,
tblinterview.EndTime
FROM tbldata
INNER JOIN tblinterview ON tblinterview.DataID = tbldata.DataId
WHERE tblinterview.Complete = "Y"
GROUP BY tbldata.BranchCode, tbldata.RegionID, tblinterview.EndTime