Cita:
Iniciado por GeriReshef
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 originalSELECT CR.Tipo [Tipo],
ROUND(COALESCE(SUM(CR.[cantidad]) / (NULLIF(SUM(CR.valor), 0)), 0), 2) [Reultado],
MAX([cantidadTotal]) [cantidadTotal]
FROM (SELECT T2.TYPE [Tipo],
ISNULL((SELECT SUM((Quant1 - Quant2))
FROM TQUANT A1
WHERE A1.Id = T0.Id
AND A1.DATE <= GETDATE()) * T0.VALUE, 0)
[cantidad],
SUM([cantidad]) OVER() [cantidadTotal]
FROM TVALUES T0) AS CR
GROUP BY CR.Tipo
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.