Las consultas "complejas y elavoradas" no son lo mío

31/03/2008 - 23:45 por David | Informe spam
Muy buenas,

Microsoft SQL Server 2000

Las consultas "complejas y elavoradas" no son lo mío:

Partiendo de esta tabla tan simple (la he simplificado)

Tabla:
-
Catergoría [Char(2)]
Fecha [DateTime]

Nota: existen TRES categorías POSIBLES: 'AR', 'OF' y 'MR'
la fecha almacena el día/mes/año y hora
Existen registros dados de alta DIARIAMENTE


¿Cómo podría montar una consulta que contara las categorias por Años-meses?
(apariciones de las categorias por meses)


Es decir, el resultado esperado sería algo así:

AR OF MR
Marzo-2007 45 5 4
Abril-2007 78 56 8


etc.. hasta el último mes que se encuentre en el campo Fecha

En fin gracias de antemano, le doy vueltas y "no hay tú tía", tan sólo llego
a agrupar por año,mes y categoría y hacer un COUNT pero la información que
devuelve no es clara ?¿?¿?¿

Preguntas similare

Leer las respuestas

#1 Maxi Accotto
02/04/2008 - 16:31 | Informe spam
David, como que la informacion retornada no es clara? si hace un group es
mas que clara la informacion. Pero por lo que veo usted no quiere hacer eso
sino armar un tipo pivot porque algunos registros los ha transformado en
columnas.

Para eso le dejo este link

http://www.microsoft.com/spanish/ms...fault.aspx


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"David" escribió en el mensaje de
noticias:#
Muy buenas,

Microsoft SQL Server 2000

Las consultas "complejas y elavoradas" no son lo mío:

Partiendo de esta tabla tan simple (la he simplificado)

Tabla:
-
Catergoría [Char(2)]
Fecha [DateTime]

Nota: existen TRES categorías POSIBLES: 'AR', 'OF' y 'MR'
la fecha almacena el día/mes/año y hora
Existen registros dados de alta DIARIAMENTE


¿Cómo podría montar una consulta que contara las categorias por
Años-meses?
(apariciones de las categorias por meses)


Es decir, el resultado esperado sería algo así:

AR OF MR
Marzo-2007 45 5 4
Abril-2007 78 56 8


etc.. hasta el último mes que se encuentre en el campo Fecha

En fin gracias de antemano, le doy vueltas y "no hay tú tía", tan sólo
llego a agrupar por año,mes y categoría y hacer un COUNT pero la
información que devuelve no es clara ?¿?¿?¿


Respuesta Responder a este mensaje
#2 Jesús López
02/04/2008 - 22:49 | Informe spam
Ojalá fueran así las consultas más complejas que yo tuviera que hacer :-)

SELECT
Año, NumeroMes, Mes,
SUM(CASE WHEN Categoria = 'AR' THEN 1 ELSE 0 END) AS AR,
SUM(CASE WHEN Categoria = 'OF' THEN 1 ELSE 0 END) AS [OF],
SUM(CASE WHEN Categoria = 'MR' THEN 1 ELSE 0 END) AS MR
FROM
(
SELECT
DATEPART(yyyy, Fecha) AS Año,
DATEPART(m, GETDATE()) NumeroMes,
DATENAME(m, GETDATE()) AS Mes,
Categoria
FROM
Tabla
) AS T
GROUP BY
Año, NumeroMes, Mes
ORDER BY
Año, NumeroMes, Mes

Saludos:

Jesús López
www.solidq.com





"David" escribió en el mensaje
news:%
Muy buenas,

Microsoft SQL Server 2000

Las consultas "complejas y elavoradas" no son lo mío:

Partiendo de esta tabla tan simple (la he simplificado)

Tabla:
-
Catergoría [Char(2)]
Fecha [DateTime]

Nota: existen TRES categorías POSIBLES: 'AR', 'OF' y 'MR'
la fecha almacena el día/mes/año y hora
Existen registros dados de alta DIARIAMENTE


¿Cómo podría montar una consulta que contara las categorias por
Años-meses?
(apariciones de las categorias por meses)


Es decir, el resultado esperado sería algo así:

AR OF MR
Marzo-2007 45 5 4
Abril-2007 78 56 8


etc.. hasta el último mes que se encuentre en el campo Fecha

En fin gracias de antemano, le doy vueltas y "no hay tú tía", tan sólo
llego a agrupar por año,mes y categoría y hacer un COUNT pero la
información que devuelve no es clara ?¿?¿?¿


Respuesta Responder a este mensaje
#3 Jesús López
02/04/2008 - 22:54 | Informe spam
¡Anda que no se complica la vida ni nada nuesto amigo Héctor para hacer un
PIVOT de ná y menos!

Saludos:

Jesús López
www.soldiq.com
Respuesta Responder a este mensaje
#4 David
03/04/2008 - 00:01 | Informe spam
Me quito el sombrero, mil gracias por todas y cada una de las aportaciones.

Nota: aparte de la ayuda puntual (insisto gracias) voy a imprimir esta
última consulta y voy a intentar comprenderla.

Lo dicho gracias !!!
Respuesta Responder a este mensaje
#5 Maxi Accotto
03/04/2008 - 02:14 | Informe spam
Hola Jose, eso seria valido si es SQL2005, en el mensaje indica que usa SQL
2000 :(


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Jesús López" escribió en el
mensaje de noticias:#
¡Anda que no se complica la vida ni nada nuesto amigo Héctor para hacer un
PIVOT de ná y menos!

Saludos:

Jesús López
www.soldiq.com

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida