2011-12-08 74 views
0
SELECT dbo.dPlaysPerDay.fkPlayerId AS Expr1, 
     sum(dbo.dPlaysPerDay.plays), 
     dbo.dWinners.pkWinnerId AS Expr2, 
     dbo.tbl_kissImages.kissImg AS Expr3, 
     dbo.dWinners.email AS Expr4, 
     dbo.tbl_kissImages.email 
FROM dbo.dPlaysPerDay 
INNER JOIN dbo.dWinners ON dbo.dPlaysPerDay.fkPlayerId = dbo.dWinners.pkWinnerId 
INNER JOIN dbo.tbl_kissImages ON dbo.dWinners.email = dbo.tbl_kissImages.email 
GROUP BY dWinners.email, 
      dPlaysPerDay.fkPlayerId, 
      dWinners.pkWinnerId, 
      tbl_kissImages.kissImg, 
      tbl_kissImages.email 
ORDER BY dWinners.email 

我上面的SQL返回像这样的列表:SQL集团,但只显示特定的塔顶记录

54938|14|54938|output/15124.png|156|[email protected] 
54938|4|54938|output/15103.png|156|[email protected] 
54939|10|54939|output/15104.png|156|[email protected] 
54939|9|54939|output/15124.png|156|[email protected] 
54940|10|54940|output/15114.png|156|[email protected] 
54940|9|54940|output/15109.png|156|[email protected] 

我需要一群这样的结果通过电子邮件添加了所有的戏剧(第二列),并仅显示该电子邮件地址的第一条记录中的吻图。

感谢所有帮助提前

+1

我们怎么知道哪个记录是“第一”,哪个记录最低#用于png?如果这样的话,Min和Sum应该很好地工作,并且消除这两个领域的团队。在侧面说明中,fkplayerID和pkwinnerID将始终匹配,因为从赢家到每天参加。所以你可以删除其中的一列。 – xQbert

回答

1

下面假设由第一个你的意思是png格式对于给定电子邮件/播放器的最早的数量。

SELECT dbo.dPlaysPerDay.fkPlayerId AS Expr1, 
    sum(dbo.dPlaysPerDay.plays), 
    dbo.dWinners.pkWinnerId AS Expr2, 
    min(dbo.tbl_kissImages.kissImg) AS Expr3, 
    dbo.dWinners.email AS Expr4, 
    dbo.tbl_kissImages.email 
FROM dbo.dPlaysPerDay 
INNER JOIN dbo.dWinners 
    ON dbo.dPlaysPerDay.fkPlayerId = dbo.dWinners.pkWinnerId 
INNER JOIN dbo.tbl_kissImages 
    ON dbo.dWinners.email = dbo.tbl_kissImages.email 
GROUP BY dWinners.email, 
      dPlaysPerDay.fkPlayerId, 
      dWinners.pkWinnerId, 
      tbl_kissImages.email 
ORDER BY dWinners.email