group by

09/03/2007 - 17:43 por fredy | Informe spam
Hola grupo, resulta q tengo q realizar una vista de tal manera que no se si
es posible.
Resulta que tengo que coger datos de 2 tablas A y B por ej., de la B
necesito 2 campos (Fecha y Meses)
para cada registro de la tabla A necesito uno de la B. El problema es que en
la B puede haber más
de 1 q coincida, en este caso se deberá coger el q coincida con la fecha
mayor.
Lo que hago es hacer una agrupación y asignarle al campo Fecha la función
MAX para q me
devuelva el mayor, el problema es q me agrupa también por Meses con lo que
vuelve a devolverme para
cada registro de A varios de B. Existe alguna manera de dejar un campo
desagrupado (Meses) para
que me devuelva el que coincide con el de la fecha Máxima?

Realmente la vista consta de más tablas, aunque para simplificar he puesto
el ejemplo anterior.


Gracias.
 

Leer las respuestas

#1 Alejandro Mesa
09/03/2007 - 17:59 | Informe spam
fredy,

Usa una tabla derivada o CTE si estas en 2005.

select
a.*, b.*
from
dbo.tu_tabla as a
inner join
(
select c1, max(fecha) as max_fecha
from dbo.t2
group by c1
) as b
on a.c1 = b.c1
go


AMB

"fredy" wrote:

Hola grupo, resulta q tengo q realizar una vista de tal manera que no se si
es posible.
Resulta que tengo que coger datos de 2 tablas A y B por ej., de la B
necesito 2 campos (Fecha y Meses)
para cada registro de la tabla A necesito uno de la B. El problema es que en
la B puede haber más
de 1 q coincida, en este caso se deberá coger el q coincida con la fecha
mayor.
Lo que hago es hacer una agrupación y asignarle al campo Fecha la función
MAX para q me
devuelva el mayor, el problema es q me agrupa también por Meses con lo que
vuelve a devolverme para
cada registro de A varios de B. Existe alguna manera de dejar un campo
desagrupado (Meses) para
que me devuelva el que coincide con el de la fecha Máxima?

Realmente la vista consta de más tablas, aunque para simplificar he puesto
el ejemplo anterior.


Gracias.



Preguntas similares