Ver Mensaje Individual
  #16 (permalink)  
Antiguo 24/01/2014, 14:03
Avatar de adryan310
adryan310
 
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 8 meses
Puntos: 3
Exclamación Respuesta: Como hacer la suma del siguiente campo con sqlserver?

Compañero, lo que mas se me ocurrio hacer fue esto, me corre un poco mejor que antes pero en algunos casos no agrupa bien, pero si ya no se le puede hacer nada mas pues asi se queda, mira:
Código SQL:
Ver original
  1. SELECT TIME, NumGame, Teams, Score, Tickets, Risk, win, loss
  2. FROM(
  3.   SELECT *,
  4.    CASE WHEN RESULT=1 OR tickets=1 THEN SUM(winamount) END AS win,
  5.    CASE WHEN RESULT=0 OR tickets=0 THEN SUM(Risk) END AS loss
  6.   FROM(
  7.         SELECT CONVERT(VARCHAR(8), H.[SettledDate] , 108) AS 'Time', CONVERT(VARCHAR(MAX),G.[VisitorNumber]) + '/' + CONVERT(VARCHAR(MAX),G.[HomeNumber]) AS 'NumGame',
  8.                G.[VisitorTeam] + '@'+ G.[HomeTeam] AS 'Teams', CONVERT(VARCHAR(MAX),G.[VisitorScore]) + ' - ' + CONVERT(VARCHAR(MAX),G.[HomeScore]) AS 'Score', COUNT(*) AS 'Tickets',
  9.                SUM(H.[RiskAmount]) AS 'Risk',d.RESULT,h.winamount
  10.         FROM  GRADEDGAME G, GRADEDWAGERHEADER H, GRADEDWAGERDETAIL D, AGENT A, WAGERTYPE W
  11.         WHERE D.[IdGame]      =  G.[IdGame]         AND
  12.               D.[IdWager]     =  H.[IdWager]        AND
  13.               H.[IdAgent]     =  A.[IdAgent]        AND
  14.               H.[IdWagerType] =  W.[IdWagerType]    AND
  15.               G.[GradedDate] >= CONVERT(datetime,('2014-01-12 00:00:00')) AND
  16.               G.[GradedDate] <= CONVERT(datetime,('2014-01-12 23:59:59')) AND
  17.               H.[IdAgent] = 5585
  18.         GROUP BY H.[SettledDate], G.[VisitorNumber], G.[HomeNumber], G.[VisitorTeam], G.[HomeTeam], G.[VisitorScore], G.[HomeScore], d.RESULT,h.winamount
  19.       ) AS t1
  20.         GROUP BY TIME, NumGame, Teams, Score, Tickets, Risk, RESULT, winamount
  21. ) AS t2
  22.   GROUP BY TIME, NumGame, Teams, Score, Tickets, Risk, winamount, win,loss