sql - funciones - expresiones rdlc
Resumir datos agregados (5)
Esto se llama pivoteo de mesa. En tu caso simple, solo hay dos columnas; en general, podría haber 200 países más o menos, en cuyo caso, el pivote se vuelve bastante difícil.
Hay muchos recursos en línea que describen cómo hacerlo: Google para ''tabla dinámica sql''.
Tengo una tabla como la siguiente:
SoftwareName Count Country Project 15 Canada Visio 12 Canada Project 10 USA Visio 5 USA
¿Cómo lo consulto para darme un resumen como ...
SoftwareName Canada USA Total Project 15 10 25 Visio 12 5 17
¿Cómo hacer en T-SQL?
OK ... Aquí está cómo hacerlo usando PIVOT:
SELECT Softwarename, Canada, USA, Canada + USA As TOTAL from SoftwareDemo
PIVOT
(
SUM([Count])
FOR Country
IN (Canada, USA)
) AS x
Softwarename Canada USA TOTAL
-------------------------------------------------- ----------- ----------- -----------
Project 15 10 25
Visio 12 5 17
(2 row(s) affected)
en SQL 2005 o posterior la palabra clave SQL "Pivot" que hace esto por usted, consulte el siguiente enlace:
SELECT SoftwareName,
SUM( CASE Country WHEN ''Canada'' THEN [Count] ELSE 0 END ) AS Canada,
SUM( CASE Country WHEN ''USA'' THEN [Count] ELSE 0 END ) AS USA,
SUM( [Count] ) AS Total
FROM [Table]
GROUP BY SoftwareName;
Creo que puedes usar este enlace:
Suma de registros únicos: mejor rendimiento que un cursor
y creo que el uso de la función PIVOT tiene la mejor función de evaluación SUM ().!