2014-02-20 72 views
0

Andddd我回来了!我试图在这个数据库中获得房地产销售的数量,并且我有足够的理由来整理所有的城镇销售情况。完善。我加入了一个小组,它应该按照他们所在的城镇来分组,但事实并非如此。我敢肯定它是一个愚蠢的错误,谁能告诉我我错过了什么?按命令分组不会将我的查询结果分组

SELECT rl.AgentID, rl.first_name, rl.last_name, Count(town) as Town 
FROM [INTERN_DB2].[dbo].[PaymentList] pl inner join 
(Select agentID, min(first_name) as first_name, min(last_name) as last_name 
    From [Intern_DB2]..[RealEstateAgentList] 
    GROUP BY agentID, first_name, last_name 
) rl 
ON rl.AgentID = pl.AgentID 
GROUP BY rl.AgentID, rl.first_name, rl.last_name, town; 

我在想我的错误是在计数命令,但我不知道。

+0

您遇到的错误是什么? –

+0

不是一个错误,只是没有得到我想要的确切结果。我按照自己想要的方式将它分组(我再次感谢你),我只是希望它不再为同一条目给我多个结果。 I.E.而不是说橡木沙滩有3次销售,其展示橡木沙滩1次销售三次。 –

回答

2

你可能想从group by删除town

SELECT rl.AgentID, rl.first_name, rl.last_name, Count(town) as Town 
FROM [INTERN_DB2].[dbo].[PaymentList] pl inner join 
(Select agentID, min(first_name) as first_name, min(last_name) as last_name 
    From [Intern_DB2]..[RealEstateAgentList] 
    GROUP BY agentID, first_name, last_name 
) rl 
ON rl.AgentID = pl.AgentID 
GROUP BY rl.AgentID, rl.first_name, rl.last_name; 

随着在group bytown,你指望匹配的编号为agentid/town组合。因此,一个特定的代理将在多行,每个城镇一个。然后它会给出与该代理关联的PaymentList中的行数。

你想做什么?如果要计算代理商所在的独特城镇,请执行以下操作:

SELECT rl.AgentID, rl.first_name, rl.last_name, Count(distinct town) as Town 
FROM [INTERN_DB2].[dbo].[PaymentList] pl inner join 
(Select agentID, min(first_name) as first_name, min(last_name) as last_name 
    From [Intern_DB2]..[RealEstateAgentList] 
    GROUP BY agentID, first_name, last_name 
) rl 
ON rl.AgentID = pl.AgentID 
GROUP BY rl.AgentID, rl.first_name, rl.last_name; 
+0

这正是我想要做的!谢谢,我知道我错过了一些东西。我尝试了独特的修饰符,但它没有解决我的问题。我应该这样做,而不是选择而不是? –