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

problema utilizando MAX() dentro de una subconsulta

Estas en el tema de problema utilizando MAX() dentro de una subconsulta en el foro de Mysql en Foros del Web. tengo problemas con este codigo: SELECT lugar FROM horario_control WHERE rut_paciente='$rut' AND fecha_control=(SELECT Max(fecha_control) FROM horario_control) ya habia utilizado este modelo anteriormente pero ahora no ...
  #1 (permalink)  
Antiguo 29/01/2010, 20:54
 
Fecha de Ingreso: enero-2010
Mensajes: 7
Antigüedad: 10 años
Puntos: 0
Exclamación problema utilizando MAX() dentro de una subconsulta

tengo problemas con este codigo:

SELECT lugar FROM horario_control WHERE rut_paciente='$rut' AND fecha_control=(SELECT Max(fecha_control) FROM horario_control)

ya habia utilizado este modelo anteriormente pero ahora no me resulta, y me arroja un campo vacio siendo que los datos existen.

no se si esta mal plantearlo de este modo o es alguna otra cosa

por favor solicito ayuda!
  #2 (permalink)  
Antiguo 29/01/2010, 21:16
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 12 años
Puntos: 260
Sonrisa Respuesta: problema utilizando MAX() dentro de una subconsulta

Hola,

Posiblemente los datos están mal,

Código:
create database test;
create table horario_control (lugar varchar(50), rut_paciente int, fecha_control date);

INSERT INTO horario_control VALUES('a', 1, '20100125');
INSERT INTO horario_control VALUES('a', 2, '20100125');
INSERT INTO horario_control VALUES('b', 1, '20100126');
Código:
SELECT lugar, fecha_control
FROM horario_control
WHERE rut_paciente = 1 AND
fecha_control = (SELECT Max(fecha_control) FROM horario_control);
==>

Código:
'b', '2010-01-26
No hay nada extraño, a mas que esperaras otro resultado diferente,

Saludos,
  #3 (permalink)  
Antiguo 29/01/2010, 21:34
 
Fecha de Ingreso: enero-2010
Mensajes: 7
Antigüedad: 10 años
Puntos: 0
Respuesta: problema utilizando MAX() dentro de una subconsulta

ay!! no se que onda segun yo no hay nada malo pero por mas que lo hago no resulta, sin embargo si busco :

SELECT max( fecha_control)
FROM horario_control
WHERE rut_paciente = '16831161'

me lo arroja sin problemas pero no asi de la otra forma.
  #4 (permalink)  
Antiguo 29/01/2010, 21:44
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 12 años
Puntos: 260
Sonrisa Respuesta: problema utilizando MAX() dentro de una subconsulta

Hola,

Como mencionaba es posible que los datos esten incorrectos,

Suponiendo que $rut sea '16831161', es posible que la fecha máxima sea una que no tenga esa $rut. Me explico con un ejemplo:

'16831161', 2010-01-25
'16831162', 2010-01-26

En este caso la fecha máxima es el 26 de enero, pero pertenece a 16831162, por lo tanto el operador lógico AND, va a devolver falso. Reemplazando los valores:

Código:
SELECT lugar FROM horario_control
WHERE rut_paciente='16831161' AND fecha_control = '20100126'
Ese registro no existe en el ejemplo anterior porque la fecha máxima es de todos los registros, no solamente de la ruta '16831161'.

Posiblemente puedas probar con:

Código:
SELECT lugar, fecha_control
FROM horario_control
WHERE rut_paciente = $rut AND
fecha_control = (SELECT Max(fecha_control)
FROM horario_control WHERE rut_paciente = $rut);
Pero va a depender completamente del resultado que esperas,

Saludos,
  #5 (permalink)  
Antiguo 29/01/2010, 21:53
 
Fecha de Ingreso: enero-2010
Mensajes: 7
Antigüedad: 10 años
Puntos: 0
Respuesta: problema utilizando MAX() dentro de una subconsulta

Gracias!!!!! Ahi me resulto al condicionar con el rut en la subconsulta como me dijiste.. Te pasaste!! Gracias de neuvoo

Etiquetas: max, subconsulta
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 10:47.