Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

valor mas alto

Estas en el tema de valor mas alto en el foro de Oracle en Foros del Web. Hola Alguien sabe como puedo sacar el valor mas alto de una columna?, es decir tengo un campo con valores de fecha. necesito extraer el ...
  #1 (permalink)  
Antiguo 28/04/2006, 12:41
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 14 años, 8 meses
Puntos: 0
valor mas alto

Hola
Alguien sabe como puedo sacar el valor mas alto de una columna?, es decir tengo un campo con valores de fecha. necesito extraer el mas alto. habra alguna forma?
Atte
Mauricio
__________________
Dios es mas grande que tu problema :-)
  #2 (permalink)  
Antiguo 28/04/2006, 12:59
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mex
Mensajes: 140
Antigüedad: 16 años, 6 meses
Puntos: 0
Select Max(fecha) from tabla;
__________________
escribiendo mi libro de AJAX
  #3 (permalink)  
Antiguo 28/04/2006, 13:18
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 14 años, 8 meses
Puntos: 0
gracias por responder. pero el problema es que en una tabla hay varios rut, y rut repetidos, entre los repetidos hay que sacar el mas antiguo.
Atte
Mauricio
__________________
Dios es mas grande que tu problema :-)
  #4 (permalink)  
Antiguo 28/04/2006, 13:24
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 13 años, 2 meses
Puntos: 3
Hola maurimono, estas usando Oracle????
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 28/04/2006, 13:29
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 14 años, 8 meses
Puntos: 0
Exactamente. estoy usando Orale 9i. Lei por ahi que la funcion
GREATEST (valor1, valor2…)= Obtiene el mayor valor de la lista.

pero como la uso dentro de un select?
se me ocurre dentro de un cursor pero necesito que esto se demore cada vez menos.
Atte
Mauricio

Muchas gracias por las respuestas.
__________________
Dios es mas grande que tu problema :-)
  #6 (permalink)  
Antiguo 28/04/2006, 13:29
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 13 años, 2 meses
Puntos: 3
Y bueno, seria mejor que especifiques que campo quieres que sea el mas alto.
Pues al inicio parecia que querias la fecha más alta, pero después escribes que quieres la fecha más antigua dependiendo del rut (campo que mencionas), si es que se repite....
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #7 (permalink)  
Antiguo 28/04/2006, 13:33
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 14 años, 8 meses
Puntos: 0
Mira. se trata de un registro que tiene rut y fecha. la cosa es que estando repetidos hay que sacar el mas nuevo, o mas reciente.
Gracias.
__________________
Dios es mas grande que tu problema :-)
  #8 (permalink)  
Antiguo 28/04/2006, 13:37
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 13 años, 11 meses
Puntos: 24
Usa la clausula DISTINCT en el select:

SELECT DISTINCT ...
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #9 (permalink)  
Antiguo 28/04/2006, 13:37
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 13 años, 2 meses
Puntos: 3
No se si desees esta consulta:

select rut,fecha from
(select rut,fecha
from prueba
order by rut desc,fecha desc)
where rownum=1
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #10 (permalink)  
Antiguo 28/04/2006, 13:38
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 13 años, 2 meses
Puntos: 3
Creo que te refieres a que, del rut mas alto, si se repite este rut, te salga el mas reciente, es asi?
Saludos...
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #11 (permalink)  
Antiguo 28/04/2006, 13:41
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 13 años, 2 meses
Puntos: 3
Ahi va de nuevo, es rut asc:

select rut,fecha from
(select rut,fecha
from prueba
order by rut asc,fecha desc)
where rownum=1

Ahora depende si rut es char o number.....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #12 (permalink)  
Antiguo 28/04/2006, 13:45
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 13 años, 2 meses
Puntos: 3
Disculpa, no tome en cuenta algunas cosas:
Si rut es number, no habra problemas, pero si es char o varchar2, entonces seria:

select rut,fecha from
(select rut,fecha
from prueba
order by to_number(rut) desc,fecha desc)
where rownum=1

Al final rut es desc . Disculpas nuevamente, espero que te ayude y sea lo que quieres.....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #13 (permalink)  
Antiguo 28/04/2006, 14:09
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 14 años, 8 meses
Puntos: 0
mira esta es la query

Código:
select
	   a. cuenta 
	  ,h.creacion
	  ,h.actualizacion
	  ,h.estado
	  ,h.medio_pago
from
	   tabla1         a	 
	  ,tabla2      h
	  ,tabla3    g
where 
	  a.CUST_COD 		  	     = '3404968'
	  and h.BILLACCT_ID 		 = g.ROW_ID
	  and g.X_INTEGRATION_ID  	 = trim(a.CUST_COD)
hay 6 coincidencias, iguales, salvo por la fecha que una es mas antigua que las otras.
__________________
Dios es mas grande que tu problema :-)
  #14 (permalink)  
Antiguo 28/04/2006, 14:15
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 13 años, 2 meses
Puntos: 3
Por lo que veo, la fecha de creación esta en otra tabla, tabla1 y tabla2 se relacionan con cust_cod?. Si es asi, la consulta no tiene el join entre ambas tablas.....
Mas o menos quieres como te pase la consulta???
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #15 (permalink)  
Antiguo 28/04/2006, 14:27
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 14 años, 8 meses
Puntos: 0
es cierto, al principio trate de hacer la pregunta mas liviana para luego probar y adaptar a mi caso (ya que la query en realidad mide como un metro....)
las relaciones estan ahí en forma correcta, ya que el resultado es el que espero. sin embargo fijate que a partir de esa relacion estoy tratando de extraer el mas nuevo. algo asi estoy pensando:
Código:
and h.CREATED in (select CREATED from siebel.S_PAY_METHOD order by CREATED desc)
es decir a mi consulta agregarle una pequeña sub consulta que resuelva el problema

Eso es, espero ser mas claro.
Atte
Mauricio
__________________
Dios es mas grande que tu problema :-)
  #16 (permalink)  
Antiguo 28/04/2006, 14:44
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 13 años, 2 meses
Puntos: 3
Bueno, la sub-consulta no te saca la fecha más alta, solo te la ordena de mayor a menor. Si quieres que la compare con la más alta, ahi usarias el SELECT MAX(CREATED) from siebel.S_PAY_METHOD, y solo te lo compararia con la fecha más alta.
Mas o menos entiendo tu idea, y bueno, siempre toma en cuenta las sub-consultas, como te diste cuenta hice la sub-consulta para que me ordene de mayor a menor, tanto rut como fecha y de ahi saco la primera fila, pues puede darse el caso de que en la fecha existan dos registros mayores....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #17 (permalink)  
Antiguo 28/04/2006, 20:28
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 17 años, 6 meses
Puntos: 11
como dicen es mejor usar una subconsulta

Código:
SELECT columns_of_interest
FROM table_name a
WHERE rowid > ( SELECT min(rowid)
                       FROM table_name b
                        WHERE b.pk_column_1 = a.pk_column_1
                       and b.pk_column_2 = a.pk_column_2 );
Si deseas obtener el valor mas bajo camias el MIN por MAX y dode dice "rowid >" lo cambias por "rowid <"

__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.