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