Autor Tema: Fecha mas cercana  (Leído 2791 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gsantamaria

  • Sv Member
  • ***
  • Mensajes: 157
  • EL hombre por mucho que sepa, sabe poco..
Fecha mas cercana
« : mayo 29, 2012, 09:45:19 am »
estimados tengo una duda y la verda no encuentro forma de poder realizar talves ustedes me dan una guia de como realizarla

tengo la siguiente table


//*/*/**/* la imagen no me la carga photobucket.com  ni modo la adjuntare


la idea es que en la misma tabla tengo el cod del articulo repetido siempre, pero nesecito obtener en el scrip el que tenga la ultima fecha o la fecha mas cercana, de una serie de articulos..


para el caso.. si tengo 3 articulos tengo que obtener el de los 3 articulo el que tiene la fecha mas cercana ala fecha actual

para el caso la tabla que pegue anteriormente tengo articulos repetidos por que cada linea es un movimiento, pero nesecito extraer el ultimo movimiento que tuvo cada arituculo, para saber cual es el ultimo articulo tiene qu ser el de la fecha mas proxima a la fecha actual


yo arme un scrip usando el comando max(transaccion) y me funciona perfectamente pero solo cuando es un articulo en especifico, pero ya cuando son varios articulos ya no me funciona bien

la funcion max la aplico en el numero de transaccion, seleccionando el mayor numero de  transaccion por articulo ya que ese seria el ultimo movimiento, pero ya con varios articulos no se como poder armarla


si alguine me pudiera dar una guia se los agradeceria muchisimas gracias

Mod-edit: titulo, http://www.svcommunity.org/forum/reglas/solicitar-ayuda-eficazmente-!/


« Última Modificación: mayo 29, 2012, 12:36:11 pm por JaiMe »
Gracias DIOS por un dia mas de vida

Desconectado stoke

  • Sv Member
  • ***
  • Mensajes: 342
Re:help con ayuda de scrips
« Respuesta #1 : mayo 29, 2012, 10:45:02 am »
SELECT * FROM transaccion GROUP BY cod ORDER BY fecha DESC

Desconectado kernel

  • MiembrosReales
  • *
  • Mensajes: 45
    • kerneltecnico
Re:help con ayuda de scrips
« Respuesta #2 : mayo 29, 2012, 10:59:07 am »
la consulta que te puede servir es asi:

select distinct (codigo producto o nombre del producto) from tabla where  fecha between '20120101' and getdate()

donde getdate() es la fecha actual
« Última Modificación: mayo 29, 2012, 11:03:25 am por kernel »
el peor de los hombres es todo aquel que teniendo la vista no pueda ver...

Desconectado gsantamaria

  • Sv Member
  • ***
  • Mensajes: 157
  • EL hombre por mucho que sepa, sabe poco..
Re:help con ayuda de scrips
« Respuesta #3 : mayo 29, 2012, 10:59:31 am »
mmm si me los ordena pero yo nesecito nada mas una linea por articulo, osea...

articulo 1 20/05/2012 
articulo 2 15/05/2012
articulo 3 18/05/2012
Gracias DIOS por un dia mas de vida

Desconectado kernel

  • MiembrosReales
  • *
  • Mensajes: 45
    • kerneltecnico
Re:help con ayuda de scrips
« Respuesta #4 : mayo 29, 2012, 11:08:52 am »
aclarando:
la consulta que te puede servir es asi:

select distinct (columna) from tabla where  fecha between '20120101' and getdate()

donde getdate() es la fecha actual
el peor de los hombres es todo aquel que teniendo la vista no pueda ver...

Desconectado Non Servium

  • Sv Member
  • ***
  • Mensajes: 426
  • Ilix Punx :)
Re:help con ayuda de scrips
« Respuesta #5 : mayo 29, 2012, 11:25:19 am »
Podes probar...
Código: [Seleccionar]
SELECT MAX(Transaccion) AS Transaccion, Cod, MAX(Fecha) AS Fecha
FROM Transacciones
GROUP BY Cod
ORDER BY Cod, Fecha

Si necesitas cantidad, deberias ponerle un bit a esa tabla que te permita saber cuál es la última a tomar en cuenta xq de otra manera te resulta hacer un procedimiento almacenado y sale más complicado
♫ Condenados a perder la libertad! Por no acatar las leyes que les asignaron. ♪ ♫
Decididos, decididos a emprender! Un camino largo y duro por no ser esclavos ♫


Watch

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:help con ayuda de scrips
« Respuesta #6 : mayo 29, 2012, 12:24:35 pm »
Si necesitas cantidad, deberias ponerle un bit a esa tabla que te permita saber cuál es la última a tomar en cuenta xq de otra manera te resulta hacer un procedimiento almacenado y sale más complicado


ya lo había dicho una vez, y lo gua repetir.... DEBEN DE DEJAR DE PROGRAMAR DICIENDOLE A LA COMPUTADORA COMO HACER LAS COSAS, DEBEN DE PROGRAMAR DICIENDOLE QUE HACER, EL COMO HACER, DEBE SER ELLA EL QUE LO DECIDA.


SELECT * FROM transaccion as a
where fecha=(select max(fecha) from transaccion where a.cod=cod)


no hay necesidad de PROCEDIMIENTOS, MODIFICAR LA TABLA, MODIFICAR EL PROGRAMA, es un simple script
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado gsantamaria

  • Sv Member
  • ***
  • Mensajes: 157
  • EL hombre por mucho que sepa, sabe poco..
Re:Fecha mas cercana
« Respuesta #7 : mayo 29, 2012, 04:22:21 pm »
buenos mis estimados maestricimos.. antes que nada.. muchisimas gracias  :sur: :sur: :sur: :sur: :sur:

como siempre.. aca si se aprende... les comento que probé todas las opciones que me ayudaron.. algunas bastantes parecidas a las que ya poseía yop.... pero al final arme una de todas las opciones, ya que unos de los scrips me daban mas de unas linea de resultados para el mismo cod, ya que tenia varias transacciones el mismo día, entonces decidí hacer el where con el numero de la transacción

al final mi scritp quedo de la siguiente manera

SELECT * FROM TESTE  a
where
TRANSACTION_ID=(select max(TRANSACTION_ID)
from TESTE where a.PART_ID=PART_ID)


donde

TESTE = nombre de la tabla de prueba
TRASACTION_ID = numero de transaccion de invetarios el cual es llave primaria
PART_ID = cod del articulo

al final me funciono perfectamente, obteniendo el mayor numero de trasaccion por consiguiente es el mas reciente de cada uno de los articulos..

nuevamente muchas gracias ....  :sur: :sur: :sur: :sur:
Gracias DIOS por un dia mas de vida