sql server - SQL GROUP BY, adding a column from another table works but produces inaccurate information -
so here original query:
select batting.playerid, sum(g) 'g', sum(ab) 'ab', sum(r) 'r', sum(h) 'h', sum(doub) '2b', sum(trip) '3b', sum(hr) 'hr', sum(rbi) 'rbi', sum(sb) 'sb', sum(cs) 'cs', sum(bb) 'bb', sum(so) 'so', sum(ibb) 'ibb', sum(hbp) 'hbp', sum(sh) 'sh', sum(sf) 'sf', sum(gidp) 'gidp', master.namelast, master.namefirst, batting join master on batting.playerid = master.playerid master.namelast @lastname + '%' group batting.playerid, master.namelast, master.namefirst here new query:
select batting.playerid, sum(g) 'g', sum(ab) 'ab', sum(r) 'r', sum(h) 'h', sum(doub) '2b', sum(trip) '3b', sum(hr) 'hr', sum(rbi) 'rbi', sum(sb) 'sb', sum(cs) 'cs', sum(bb) 'bb', sum(so) 'so', sum(ibb) 'ibb', sum(hbp) 'hbp', sum(sh) 'sh', sum(sf) 'sf', sum(gidp) 'gidp', master.namelast, master.namefirst, fielding.pos batting join master on batting.playerid = master.playerid join fielding on master.playerid = fielding.playerid master.namelast @lastname + '%' , fielding.pos in ('c', '1b','2b','3b', 'ss', 'lf', 'rf', 'cf', 'of', 'dh') group batting.playerid, master.namelast, master.namefirst, fielding.pos all doing adding pos column fielding table. had sum columns on batting table totals. results have multiple pos's on fielding table relate sums, ie, has 50 games @ 1 pos, 50 @ pos. query works, numbers being returned getting multiplied few times along way (are lot larger in second query first) , getting multiple records based on pos, want one. thoughts? tried left outer join, didnt anything
the proble 1 record in master table can have multiple records in fielding table, cause query return each record in batting table multiple times. if need data fielding table, need limit single record per playerid.
Comments
Post a Comment