计算来自多个表的分组记录

时间:2014-06-19 12:14:27

标签: sql-server

有一个名为comment_id的表格的pic_alb_love列,我想在下面的查询中添加,但我不知道如何。实际上我想要做的是计算表comment_id的总pic_alb_love

SELECT users_pics.wardrobe, 
     profile.fname,
     users_pics.pic,
     users_pics.u_pic_id,
     users_pics.email,
     users_pics.make,
     users_pics.designer,
     photo_comment.comment,
     max_photo_comment.count_pic_id
FROM dbo.users_pics 
INNER JOIN profile 
    ON users_pics.email = profile.email  
LEFT Join (SELECT pic_id
                ,MAX(comment_id) max_comment_id
                ,COUNT(pic_id) count_pic_id
           FROM photo_comment
           GROUP BY pic_id
          ) max_photo_comment 
    On users_pics.u_pic_id = max_photo_comment.pic_id         
LEFT Join photo_comment 
    On max_photo_comment.pic_id = photo_comment.pic_id 
        AND max_photo_comment.max_comment_id = photo_comment.comment_id
WHERE users_pics.wardrobe = MMColParam 
    AND users_pics.email = MMColParam2
ORDER BY u_pic_id asc

这些是表pic_alb_love的各个字段:

(comment_id,pic,love_com, wardrobe, email
    ,com_name,resp_email, play_count, com_stat) 

1 个答案:

答案 0 :(得分:0)

LEFT JOIN (SELECT Pic
              ,Count(*) [CommentCount]
           FROM pic_alb_love 
           GROUP BY Pic) c 
    ON c.Pic=u_pic_id

假设pic_alb_love.pic是桌面上的FK ...... 在选择列表中使用[CommentCount]

相关问题