2013-02-05 118 views
0

我有一個Mysql查詢,從2個表中選擇一些內部連接的列。它應該計算來自一個表格列的「Y」值並用一個分組依據進行計數。MYSQL內部連接計數子查詢

這是我的查詢:

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是所有記錄,而不是分組計數的總數。

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 

有人能解釋我的查詢錯在哪裏嗎?

+0

我們可以略過解釋,只是給你一個答案這是正確的? – Strawberry

+0

@strawberry,我們的答案也將工作謝謝! :) – user1882752

回答

4

試試這個

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 
+0

如果查詢不工作,可以你給樣品數據與期望的結果? –

+0

謝謝,這看起來是正確的數據。多謝。 – user1882752

+0

491243,你可以看看這個熟悉的問題:http://stackoverflow.com/questions/18427180 –

1
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 
+0

謝謝,但這是我在短的地方:「SELECT Count(tblinterview.Contacted)as Contact_Y」我需要這個計數只在tblinterview.Contacted =「Y」 – user1882752