Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/04/2015, 05:32
CallSaul
 
Fecha de Ingreso: abril-2015
Ubicación: Almería
Mensajes: 4
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Sumar total en una agrupación

Cita:
Iniciado por GeriReshef Ver Mensaje
Espero que te entendí: la cantidadTotal esta calculada dentro de la subconsulta (el mismo total a lo largo de todo el conjunto), y afuera de ella como Max(cantidadTotal) porque es obligatorio poner la en una función de agregado:

Código SQL:
Ver original
  1. SELECT  CR.Tipo [Tipo],
  2.         ROUND(COALESCE(SUM(CR.[cantidad]) / (NULLIF(SUM(CR.valor), 0)), 0), 2) [Reultado],
  3.         MAX([cantidadTotal]) [cantidadTotal]
  4. FROM    (SELECT T2.TYPE [Tipo],
  5.                 ISNULL((SELECT SUM((Quant1 - Quant2))
  6.                         FROM    TQUANT A1
  7.                         WHERE   A1.Id = T0.Id
  8.                                 AND A1.DATE <= GETDATE()) * T0.VALUE, 0)
  9.                 [cantidad],
  10.                 SUM([cantidad]) OVER() [cantidadTotal]
  11.         FROM    TVALUES T0) AS CR
  12. GROUP BY CR.Tipo
  13. ORDER BY CR.Tipo;
Buenas GeriReshef, gracias por responder.
He probado lo del "Sum([cantidad]) Over() [cantidadTotal]" pero no me reconoce [cantidad] ya que está dentro de la misma consulta, igual me falta algo, pero creo que tiene sentido que no me deje acceder al campo.

Os doy mas detalles a ver si os ayuda:

La subconsulta devuelve datos como:
Tipo Cantidad
----------------------------------
AA 200
AB 100
AC 150
AA 400
AC 100
.
.
.
La consulta externa los agrupa por tipo, quedando algo como:

Tipo Cantidad
----------------------------------
AA 400
AB 100
AC 250
.
.
.

Lo que necesito es que "cantidadTotal" sea la suma de todos los tipos, en este caso:
400 + 100 + 250 = 750
El problema es que al tenerlo agrupado debería salirme en todas las filas la "cantidadTotal" igual, según entiendo claro.

Espero haberme explicado mejor, jeje.
Gracias.