ayuda con una consulta....!

19/07/2004 - 21:36 por Eusebio | Informe spam
Hola grupo,

Debo hacer una consulta y me estoy volviendo un ocho para hacerla en lo
posible con una sola consulta, he sacado la consulta pero con dos consultas
y quiero saber si hay una manera mejor de hacerla.

Se trata de sacar el año y mes mayor de cada Clase de la siguiente tabla


El script de prueba es el siguiente.


SET NOCOUNT ON
create table #tAñoMes ( Clase varchar(10) , Año int , Mes int )

insert into #tAñoMes values ( 'A' ,1995 , 2 )
insert into #tAñoMes values ( 'A' ,1991 , 10 )
insert into #tAñoMes values ( 'A' ,1992 , 11 )
insert into #tAñoMes values ( 'A' ,1995 , 1 )
insert into #tAñoMes values ( 'A' ,1994 , 5 )

insert into #tAñoMes values ( 'B' ,1990, 2 )
insert into #tAñoMes values ( 'B' ,1990, 10 )
insert into #tAñoMes values ( 'B' ,2000, 1 )
insert into #tAñoMes values ( 'B' ,1995 , 1 )
insert into #tAñoMes values ( 'B' ,1994 , 5 )

insert into #tAñoMes values ( 'C' ,2005 , 2 )
insert into #tAñoMes values ( 'C' ,1991 , 10 )
insert into #tAñoMes values ( 'C' ,2004 , 11 )
insert into #tAñoMes values ( 'C' ,2004 , 1 )
insert into #tAñoMes values ( 'C' ,1994 , 5 )

select * from #tAñoMes

/*
La consulta debe arrojar el siguiente conjunto de resultados:
Una fila con el valor Año y Mes mayor,
como la siguiente tabla.

Clave Año Mes
A 1995 2
B 2000 1
C 2005 2

*/


Mil gracias... :)
 

Leer las respuestas

#1 José Hurtado
19/07/2004 - 21:39 | Informe spam
select
Clase,
(Max((Año * 100) + Mes) / 100) Año,
(Max((Año * 100) + Mes) % 100) Mes
from #tAñoMes
group by Clase

Saludos.
José Hurtado.

"Eusebio" escribió en el mensaje
news:
Hola grupo,

Debo hacer una consulta y me estoy volviendo un ocho para hacerla en lo
posible con una sola consulta, he sacado la consulta pero con dos


consultas
y quiero saber si hay una manera mejor de hacerla.

Se trata de sacar el año y mes mayor de cada Clase de la siguiente tabla


El script de prueba es el siguiente.


SET NOCOUNT ON
create table #tAñoMes ( Clase varchar(10) , Año int , Mes int )

insert into #tAñoMes values ( 'A' ,1995 , 2 )
insert into #tAñoMes values ( 'A' ,1991 , 10 )
insert into #tAñoMes values ( 'A' ,1992 , 11 )
insert into #tAñoMes values ( 'A' ,1995 , 1 )
insert into #tAñoMes values ( 'A' ,1994 , 5 )

insert into #tAñoMes values ( 'B' ,1990, 2 )
insert into #tAñoMes values ( 'B' ,1990, 10 )
insert into #tAñoMes values ( 'B' ,2000, 1 )
insert into #tAñoMes values ( 'B' ,1995 , 1 )
insert into #tAñoMes values ( 'B' ,1994 , 5 )

insert into #tAñoMes values ( 'C' ,2005 , 2 )
insert into #tAñoMes values ( 'C' ,1991 , 10 )
insert into #tAñoMes values ( 'C' ,2004 , 11 )
insert into #tAñoMes values ( 'C' ,2004 , 1 )
insert into #tAñoMes values ( 'C' ,1994 , 5 )

select * from #tAñoMes

/*
La consulta debe arrojar el siguiente conjunto de resultados:
Una fila con el valor Año y Mes mayor,
como la siguiente tabla.

Clave Año Mes
A 1995 2
B 2000 1
C 2005 2

*/


Mil gracias... :)


Preguntas similares