el ultimo precio

25/03/2008 - 16:48 por mp | Informe spam
Señores, antes lo he visto en este grupo, pero ahora no lo encuentro.
Necesito sacar la fecha y el precio de la ultima vez que se compró un
articulo.
En la tabla tengo:

Td Codigo Fecha Precio Sucu

Como decia, necesito el precio de la ultima vez que se compro en la sucursal
'BP1'
Para este tengo
select codigo,max(fecha) ,precio,sucu from compras where td='FC' and
sucu='BP1'group by codigo,precio order by fecha desc
Pero en ocaciones no me muestra lo que necesito.
Algo esta mal????
Se agradece cualquier ayuda

Preguntas similare

Leer las respuestas

#1 jcac
25/03/2008 - 16:55 | Informe spam
Hola mp,

Asumo que asi te debería de funcionar:

select c.codigo, max(c.fecha),
(select precio from compras where c.codigo = codigo and max(c.fecha) =
fecha and c.sucu = sucu and c.td = td) as precio,
c.sucu
from compras c where c.td='FC' and c.sucu='BP1'
group by c.codigo
order by c.fecha desc

Saludos

Juan Carlos

"mp" escribió en el mensaje
news:OVbhm%
Señores, antes lo he visto en este grupo, pero ahora no lo encuentro.
Necesito sacar la fecha y el precio de la ultima vez que se compró un
articulo.
En la tabla tengo:

Td Codigo Fecha Precio Sucu

Como decia, necesito el precio de la ultima vez que se compro en la
sucursal 'BP1'
Para este tengo
select codigo,max(fecha) ,precio,sucu from compras where td='FC' and
sucu='BP1'group by codigo,precio order by fecha desc
Pero en ocaciones no me muestra lo que necesito.
Algo esta mal????
Se agradece cualquier ayuda




Respuesta Responder a este mensaje
#2 mp
25/03/2008 - 17:15 | Informe spam
Gracias jcac por tu pronta respuesta.
Lo probe y me un errror "La subconsulta ha devuelto más de un valor, lo que
no es correcto ."



"jcac" escribió en el mensaje
news:
Hola mp,

Asumo que asi te debería de funcionar:

select c.codigo, max(c.fecha),
(select precio from compras where c.codigo = codigo and max(c.fecha) =
fecha and c.sucu = sucu and c.td = td) as precio,
c.sucu
from compras c where c.td='FC' and c.sucu='BP1'
group by c.codigo
order by c.fecha desc

Saludos

Juan Carlos

"mp" escribió en el mensaje
news:OVbhm%
Señores, antes lo he visto en este grupo, pero ahora no lo encuentro.
Necesito sacar la fecha y el precio de la ultima vez que se compró un
articulo.
En la tabla tengo:

Td Codigo Fecha Precio Sucu

Como decia, necesito el precio de la ultima vez que se compro en la
sucursal 'BP1'
Para este tengo
select codigo,max(fecha) ,precio,sucu from compras where td='FC' and
sucu='BP1'group by codigo,precio order by fecha desc
Pero en ocaciones no me muestra lo que necesito.
Algo esta mal????
Se agradece cualquier ayuda








Respuesta Responder a este mensaje
#3 jcac
25/03/2008 - 17:30 | Informe spam
Hola mp,

No lo habia probado pero ahora este te debe de funcionar:

create table compras(td char(2), codigo int, fecha datetime, precio
decimal(10,2), sucu char(3))
go
insert into compras values ('FC', 1, '20080324', 10.15, 'BP1')
insert into compras values ('FC', 1, '20080325', 15.15, 'BP1')
insert into compras values ('FD', 1, '20080325', 13.15, 'BP2')
insert into compras values ('FC', 2, '20080324', 18.15, 'BP1')
insert into compras values ('FC', 2, '20080325', 25.30, 'BP1')
go
select * from compras
go
select c.codigo, max(c.fecha),
(select precio from compras where c.codigo = codigo and max(c.fecha) =
fecha and c.sucu = sucu and c.td = td) as precio,
c.sucu
from compras c
where c.sucu='BP1' and c.td = 'FC'
group by c.codigo, c.sucu, c.td
order by max(c.fecha) desc
go
go

Saludos

Juan Carlos

"mp" escribió en el mensaje
news:%
Gracias jcac por tu pronta respuesta.
Lo probe y me un errror "La subconsulta ha devuelto más de un valor, lo
que no es correcto ."



"jcac" escribió en el mensaje
news:
Hola mp,

Asumo que asi te debería de funcionar:

select c.codigo, max(c.fecha),
(select precio from compras where c.codigo = codigo and max(c.fecha) =
fecha and c.sucu = sucu and c.td = td) as precio,
c.sucu
from compras c where c.td='FC' and c.sucu='BP1'
group by c.codigo
order by c.fecha desc

Saludos

Juan Carlos

"mp" escribió en el mensaje
news:OVbhm%
Señores, antes lo he visto en este grupo, pero ahora no lo encuentro.
Necesito sacar la fecha y el precio de la ultima vez que se compró un
articulo.
En la tabla tengo:

Td Codigo Fecha Precio Sucu

Como decia, necesito el precio de la ultima vez que se compro en la
sucursal 'BP1'
Para este tengo
select codigo,max(fecha) ,precio,sucu from compras where td='FC' and
sucu='BP1'group by codigo,precio order by fecha desc
Pero en ocaciones no me muestra lo que necesito.
Algo esta mal????
Se agradece cualquier ayuda












Respuesta Responder a este mensaje
#4 Alejandro Mesa
25/03/2008 - 20:28 | Informe spam
mp,

Que version de SQL Server estas usando?

;with cte
as
(
select *, row_number() over(partition by codigo order by fecha DESC) as rn
from tu_tabla
where Sucursal = 'BP1'
)
select *
from cte
where rn = 1;


AMB


"mp" wrote:

Señores, antes lo he visto en este grupo, pero ahora no lo encuentro.
Necesito sacar la fecha y el precio de la ultima vez que se compró un
articulo.
En la tabla tengo:

Td Codigo Fecha Precio Sucu

Como decia, necesito el precio de la ultima vez que se compro en la sucursal
'BP1'
Para este tengo
select codigo,max(fecha) ,precio,sucu from compras where td='FC' and
sucu='BP1'group by codigo,precio order by fecha desc
Pero en ocaciones no me muestra lo que necesito.
Algo esta mal????
Se agradece cualquier ayuda





Respuesta Responder a este mensaje
#5 mp
25/03/2008 - 20:38 | Informe spam
Tengo el SQL2000 SP4

"Alejandro Mesa" escribió en el
mensaje news:
mp,

Que version de SQL Server estas usando?

;with cte
as
(
select *, row_number() over(partition by codigo order by fecha DESC) as rn
from tu_tabla
where Sucursal = 'BP1'
)
select *
from cte
where rn = 1;


AMB


"mp" wrote:

Señores, antes lo he visto en este grupo, pero ahora no lo encuentro.
Necesito sacar la fecha y el precio de la ultima vez que se compró un
articulo.
En la tabla tengo:

Td Codigo Fecha Precio Sucu

Como decia, necesito el precio de la ultima vez que se compro en la
sucursal
'BP1'
Para este tengo
select codigo,max(fecha) ,precio,sucu from compras where td='FC' and
sucu='BP1'group by codigo,precio order by fecha desc
Pero en ocaciones no me muestra lo que necesito.
Algo esta mal????
Se agradece cualquier ayuda





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