0

我在表 1 和表 2 下面有两个表,我想获取表 2Sum中的FCount并将其分组TID,我想将其链接到table1.TID匹配的表 1table2.TID并选择数据 WhereTable1.ClientId=1table2.ClientId=1。我已经尝试了以下方法,SQL 告诉我按所有单个字段分组并且不返回

Table 1
id
ClientId
PageName
Country
CreatedAt
TId
TweetMessage
Replied
RCount
FavoritedCount
en_Media_type


Table 2
id
ClientId
Page
TID
UserIdFollower
screenName
Loc
FCount   

SELECT dbo.[tweets(ht)].clientid, 
       dbo.[tweets(ht)].pagename, 
       dbo.[tweets(ht)].country, 
       dbo.[tweets(ht)].createdat, 
       dbo.[tweets(ht)].tweetid, 
       dbo.[tweets(ht)].tweetmessage, 
       dbo.[tweets(ht)].replied, 
       dbo.[tweets(ht)].retweetcount, 
       dbo.[tweets(ht)].favoritedcount, 
       dbo.[tweets(ht)].en_media_type, 
       Sum(dbo.retweetersdata.followerscount) AS TotalFollowers 
FROM   dbo.[tweets(ht)] 
       CROSS JOIN dbo.retweetersdata 
WHERE  dbo.retweetersdata.tweetid = dbo.[tweets(ht)].tweetid 
       AND dbo.[tweets(ht)].clientid = 54 
GROUP  BY dbo.retweetersdata.tweetid 
4

1 回答 1

2

使用INNER JOIN代替CROSS JOIN,并将列添加到GROUP BY不在聚合函数中的列:

SELECT     
  t.ClientId,  
  t.PageName, 
  t.Country, 
  t.CreatedAt,
  t.TweetId,
  t.TweetMessage, 
  t.Replied, 
  t.RetweetCount, 
  t.FavoritedCount, 
  t.en_Media_type, 
  Sum(d.FollowersCount) As TotalFollowers
FROM dbo.[Tweets(HT)] AS t
INNER JOIN dbo.RetweetersData AS d ON d.TweetID = t.TweetId
WHERE t.ClientId = 54 
GROUP BY t.ClientId,  
  t.PageName, 
  t.Country, 
  t.CreatedAt,
  t.TweetId,
  t.TweetMessage, 
  t.Replied, 
  t.RetweetCount, 
  t.FavoritedCount, 
  t.en_Media_type;
于 2013-10-09T09:46:16.750 回答