consulta select

17/10/2005 - 16:44 por Silgol | Informe spam
tengo una tabla (resumo los datos que importan) que tiene los campos Fecha,
codigo y cantidad.
Sólo necesito identificar un registro por codigo, el de la última fecha de
cada código.
Ej:
10/10/05 0001 2
11/10/05 0001 3
09/10/05 0002 3
10/10/05 0002 55

Sólo necesito seleccionar el dato de ultima fecha de cada código.

como armo el query ?

Gracias !

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
18/10/2005 - 00:36 | Informe spam
Trata:

select *
from t1 as a
where fecha = (select max(fecha) from t1 as b where b.codigo = a.codigo)


select a.*
from t1 as a inner join (select codigo, max(fecha) as max_fecha from t1
group by codigo) as b
on a.codigo = b.codigo and a.fecha = b.max_fecha


AMB

"Silgol" wrote:

tengo una tabla (resumo los datos que importan) que tiene los campos Fecha,
codigo y cantidad.
Sólo necesito identificar un registro por codigo, el de la última fecha de
cada código.
Ej:
10/10/05 0001 2
11/10/05 0001 3
09/10/05 0002 3
10/10/05 0002 55

Sólo necesito seleccionar el dato de ultima fecha de cada código.

como armo el query ?

Gracias !
Respuesta Responder a este mensaje
#7 Silgol
18/10/2005 - 15:52 | Informe spam
Sigue dando el mismo mensaje de error
La columna 'VALORIZACION_CPP.cantidad' de la lista de selección no es
válida, porque no está contenida en una función de agregado ni en la cláusula
GROUP BY.

"Mauro" escribió:

depende si queres sumar o no la columna seria algo asi:
sumando:
> > SELECT codigo, MAX(fecha) as UltimaFecha,sum(cantidad) as cantidad
> > FROM MITABLA
> > GROUP BY codigo
> > ORDER BY codigo
sin sumar:
> > SELECT codigo, MAX(fecha) as UltimaFecha, cantidad
> > FROM MITABLA
> > GROUP BY codigo,cantidad
> > ORDER BY codigo


"Silgol" wrote in message
news:
> Hasta aquí , perfecto.
> Ahora necesito agregar algunos otros campos de la tabla, y el mensaje que
> sale es
>
> La columna (por ejemplo: cantidad) de la lista de selección no es válida,
> porque no está contenida en una función de agregado ni en la cláusula
GROUP BY
>
> "Saul Batista" escribió:
>
> >
> >
> > SELECT codigo, MAX(fecha) as UltimaFecha
> > FROM MITABLA
> > GROUP BY codigo
> > ORDER BY codigo
> >
> >
> >
> > "Silgol" wrote in message
> > news:
> > > Este query me trae todas las filas (ordenadas por código/fecha)
> > > Yo sólo necesito los registros de la última fecha de cada código
> > >
> > > "Harold Crow" escribió:
> > >
> > >> select distinct(codigo),fecha from MITABLA
> > >> order by fecha desc
> > >>
> > >> "Silgol" escribió en el mensaje
> > >> news:
> > >> > tengo una tabla (resumo los datos que importan) que tiene los
campos
> > >> > Fecha,
> > >> > codigo y cantidad.
> > >> > Sólo necesito identificar un registro por codigo, el de la última
fecha
> > >> > de
> > >> > cada código.
> > >> > Ej:
> > >> > 10/10/05 0001 2
> > >> > 11/10/05 0001 3
> > >> > 09/10/05 0002 3
> > >> > 10/10/05 0002 55
> > >> >
> > >> > Sólo necesito seleccionar el dato de ultima fecha de cada código.
> > >> >
> > >> > como armo el query ?
> > >> >
> > >> > Gracias !
> > >>
> > >>
> > >>
> >
> >
> >



Respuesta Responder a este mensaje
#8 Silgol
18/10/2005 - 16:21 | Informe spam
con cualquiera de las dos opciones, el resultado no es correcto.
Me devuelve más de una ocurrencia por codigo que tenga la misma fecha, solo
necesito el último



"Alejandro Mesa" escribió:

Trata:

select *
from t1 as a
where fecha = (select max(fecha) from t1 as b where b.codigo = a.codigo)


select a.*
from t1 as a inner join (select codigo, max(fecha) as max_fecha from t1
group by codigo) as b
on a.codigo = b.codigo and a.fecha = b.max_fecha


AMB

"Silgol" wrote:

> tengo una tabla (resumo los datos que importan) que tiene los campos Fecha,
> codigo y cantidad.
> Sólo necesito identificar un registro por codigo, el de la última fecha de
> cada código.
> Ej:
> 10/10/05 0001 2
> 11/10/05 0001 3
> 09/10/05 0002 3
> 10/10/05 0002 55
>
> Sólo necesito seleccionar el dato de ultima fecha de cada código.
>
> como armo el query ?
>
> Gracias !
Respuesta Responder a este mensaje
#9 Mauro
18/10/2005 - 16:37 | Informe spam
haber pasame la consulta tal cual la estas escribiendo

"Silgol" wrote in message
news:
Sigue dando el mismo mensaje de error
La columna 'VALORIZACION_CPP.cantidad' de la lista de selección no es
válida, porque no está contenida en una función de agregado ni en la


cláusula
GROUP BY.

"Mauro" escribió:

> depende si queres sumar o no la columna seria algo asi:
> sumando:
> > > SELECT codigo, MAX(fecha) as UltimaFecha,sum(cantidad) as cantidad
> > > FROM MITABLA
> > > GROUP BY codigo
> > > ORDER BY codigo
> sin sumar:
> > > SELECT codigo, MAX(fecha) as UltimaFecha, cantidad
> > > FROM MITABLA
> > > GROUP BY codigo,cantidad
> > > ORDER BY codigo
>
>
> "Silgol" wrote in message
> news:
> > Hasta aquí , perfecto.
> > Ahora necesito agregar algunos otros campos de la tabla, y el mensaje


que
> > sale es
> >
> > La columna (por ejemplo: cantidad) de la lista de selección no es


válida,
> > porque no está contenida en una función de agregado ni en la cláusula
> GROUP BY
> >
> > "Saul Batista" escribió:
> >
> > >
> > >
> > > SELECT codigo, MAX(fecha) as UltimaFecha
> > > FROM MITABLA
> > > GROUP BY codigo
> > > ORDER BY codigo
> > >
> > >
> > >
> > > "Silgol" wrote in message
> > > news:
> > > > Este query me trae todas las filas (ordenadas por código/fecha)
> > > > Yo sólo necesito los registros de la última fecha de cada código
> > > >
> > > > "Harold Crow" escribió:
> > > >
> > > >> select distinct(codigo),fecha from MITABLA
> > > >> order by fecha desc
> > > >>
> > > >> "Silgol" escribió en el


mensaje
> > > >> news:
> > > >> > tengo una tabla (resumo los datos que importan) que tiene los
> campos
> > > >> > Fecha,
> > > >> > codigo y cantidad.
> > > >> > Sólo necesito identificar un registro por codigo, el de la


última
> fecha
> > > >> > de
> > > >> > cada código.
> > > >> > Ej:
> > > >> > 10/10/05 0001 2
> > > >> > 11/10/05 0001 3
> > > >> > 09/10/05 0002 3
> > > >> > 10/10/05 0002 55
> > > >> >
> > > >> > Sólo necesito seleccionar el dato de ultima fecha de cada


código.
> > > >> >
> > > >> > como armo el query ?
> > > >> >
> > > >> > Gracias !
> > > >>
> > > >>
> > > >>
> > >
> > >
> > >
>
>
>
Respuesta Responder a este mensaje
#10 Silgol
18/10/2005 - 17:37 | Informe spam
El query que corro es:

SELECT coditm, MAX(fec_costo) AS UltimaFecha,
COSTO_ACTUAL, saldo_cant
FROM VALORIZACION_CPP
GROUP BY coditm, costo_actual, saldo_cant
order by coditm

Ahora no da error, pero no hace lo que necesito, traerme un valor por fecha
y por item


"Mauro" escribió:

haber pasame la consulta tal cual la estas escribiendo

"Silgol" wrote in message
news:
> Sigue dando el mismo mensaje de error
> La columna 'VALORIZACION_CPP.cantidad' de la lista de selección no es
> válida, porque no está contenida en una función de agregado ni en la
cláusula
> GROUP BY.
>
> "Mauro" escribió:
>
> > depende si queres sumar o no la columna seria algo asi:
> > sumando:
> > > > SELECT codigo, MAX(fecha) as UltimaFecha,sum(cantidad) as cantidad
> > > > FROM MITABLA
> > > > GROUP BY codigo
> > > > ORDER BY codigo
> > sin sumar:
> > > > SELECT codigo, MAX(fecha) as UltimaFecha, cantidad
> > > > FROM MITABLA
> > > > GROUP BY codigo,cantidad
> > > > ORDER BY codigo
> >
> >
> > "Silgol" wrote in message
> > news:
> > > Hasta aquí , perfecto.
> > > Ahora necesito agregar algunos otros campos de la tabla, y el mensaje
que
> > > sale es
> > >
> > > La columna (por ejemplo: cantidad) de la lista de selección no es
válida,
> > > porque no está contenida en una función de agregado ni en la cláusula
> > GROUP BY
> > >
> > > "Saul Batista" escribió:
> > >
> > > >
> > > >
> > > > SELECT codigo, MAX(fecha) as UltimaFecha
> > > > FROM MITABLA
> > > > GROUP BY codigo
> > > > ORDER BY codigo
> > > >
> > > >
> > > >
> > > > "Silgol" wrote in message
> > > > news:
> > > > > Este query me trae todas las filas (ordenadas por código/fecha)
> > > > > Yo sólo necesito los registros de la última fecha de cada código
> > > > >
> > > > > "Harold Crow" escribió:
> > > > >
> > > > >> select distinct(codigo),fecha from MITABLA
> > > > >> order by fecha desc
> > > > >>
> > > > >> "Silgol" escribió en el
mensaje
> > > > >> news:
> > > > >> > tengo una tabla (resumo los datos que importan) que tiene los
> > campos
> > > > >> > Fecha,
> > > > >> > codigo y cantidad.
> > > > >> > Sólo necesito identificar un registro por codigo, el de la
última
> > fecha
> > > > >> > de
> > > > >> > cada código.
> > > > >> > Ej:
> > > > >> > 10/10/05 0001 2
> > > > >> > 11/10/05 0001 3
> > > > >> > 09/10/05 0002 3
> > > > >> > 10/10/05 0002 55
> > > > >> >
> > > > >> > Sólo necesito seleccionar el dato de ultima fecha de cada
código.
> > > > >> >
> > > > >> > como armo el query ?
> > > > >> >
> > > > >> > Gracias !
> > > > >>
> > > > >>
> > > > >>
> > > >
> > > >
> > > >
> >
> >
> >



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