Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-06-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
obtener el primer registro de una consulta + el ultimo de otra

hola amigos, aqui les tengo otra consulta que no puedo resolver esperando que se puedan dar el tiempo en ayudarme. La situación es, tengo la consulta (en access):

Código SQL [-]
SELECT top 1 *
FROM Coleta where matricula = '100423' and data = #27/05/2008#  order by data_hora desc

Y quisiera unirla con esta otra:
Código SQL [-]
SELECT top 1 *
FROM Coleta where matricula = '100423' and data = #28/05/2008#  order by data_hora

Es decir, que la consulta me regrese el ultimo registro de la fecha 27/05 y el primer registro de la fecha 28/05.

Alguna idea? Gracias.
Responder Con Cita
  #2  
Antiguo 16-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quizá así:

Código SQL [-]
SELECT top 1 *
FROM Coleta where matricula = '100423' and data = #27/05/2008#  order by data_hora desc

union

SELECT top 1 *
FROM Coleta where matricula = '100423' and data = #28/05/2008#  order by data_hora

// Saludos
Responder Con Cita
  #3  
Antiguo 16-06-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Unhappy

que ignorancia la mia.. perdonen...
Responder Con Cita
  #4  
Antiguo 16-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues no hay nada que perdonar. Siempre hay cosas que no sabemos, no tiene nada de malo.

// Saludos
Responder Con Cita
  #5  
Antiguo 16-06-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
ok. sabia que habia algo mas a todo esto. Agradezco mucho la ayuda pero sigo teniendo el problemita, al hacer las consultas individualmente obtengo los resultados siguientes:
Consulta:
Código SQL [-]
SELECT  Top 1 * FROM Coleta where matricula = '100423' and 
data = #26/05/2008#  order by data_hora asc
Resultado : '26/05/2008 05:51:00 p.m.'

Consulta:
Código SQL [-]
SELECT Top 1 * FROM Coleta where matricula = '100423' and 
data = #27/05/2008#  order by data_hora asc
Resultado : '27/05/2008 03:02:00 a.m'

Estos son los 2 registros que quiero "unidos" pero al hacer la consulta completa con todo y la union los resultados ya no son los mismos, obtengo :
'26/05/2008 05:51:00 p.m.'
'27/05/2008 05:33:00 p.m.'

Sin importar que cambie los criterios de ordenamiento el resultado de la consulta con la union siempre es el mismo, ¿qúe podría estar pasando?. ¿algo asi como "orden de ordenamiento"? :P no se como explicarlo, pero seguro que los mas expertos entienden el problema, Gracias por su atención.
Responder Con Cita
  #6  
Antiguo 16-06-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Lo has hecho como te indico román y aún así no te da el resultado deseado?
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #7  
Antiguo 16-06-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Esta es un poco más rebuscada:

Código SQL [-]
 
 
       Select Coleta.*
         From Coleta Coleta
    Left Join (
                       SELECT  Max(Data_Hora) As HoraMax, 
                                      Min(Data_Hora)  As HoraMin
                          FROM Coleta 
                           where matricula = '100423' and 
                                     data = #26/05/2008#  
                ) As MaxMin
           On Coleta.DataHora = MaxMin.HoraMax Or
                Coleta.DataHora = MaxMin.DataMin
   Where matricula = '100423' And
            not Coleta.DataHora is null
__________________
Conoce mi blog http://www.edgartec.com

Última edición por poliburro fecha: 16-06-2008 a las 23:16:32.
Responder Con Cita
  #8  
Antiguo 16-06-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Asi es, con la union como la puso Roman me dan los resultados que especifico en mi post anterior. Intenté esta nueva consulta que me proporcionaste pero me marca el error "la expresión de combinación no está admitida", resaltandome las lineas siguientes:

Coleta.Data_Hora = HoraMax Or
Coleta.Data_Hora = DataMin



Alguna idea? Muchas gracias
Responder Con Cita
  #9  
Antiguo 16-06-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
aver la he corregido, prueba de nuevo
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #10  
Antiguo 16-06-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Quedó muy bien con pequeños cambios:

Código SQL [-]
Select Coleta.*
         From Coleta Coleta
    Left Join (
                       SELECT  Max(Data_Hora) As HoraMax, 
                                      Min(Data_Hora)  As HoraMin
                          FROM Coleta 
                           where matricula = '100423' and 
                                     data = #26/05/2008#  
                ) As MaxMin
           On Coleta.Data_Hora = MaxMin.HoraMax or 
                Coleta.Data_Hora = MaxMin.HoraMin
   Where matricula = '100423' And
data = #27/05/2008#

Muchas gracias poliburro me has ayudado las ultimas 2 veces que me he atorado. Gracias a todos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como obtener el registro anterior al ultimo MRang14 SQL 11 07-05-2008 23:48:33
como obtener valor del ultimo registro. Gaim2205 Varios 4 10-09-2007 22:02:17
como obtener el ultimo registro gustavoh .NET 2 17-07-2006 14:29:07
Obtener el último registro insertado mutant09 SQL 3 04-05-2004 20:59:21
Obtener el último registro juanchi Conexión con bases de datos 2 06-02-2004 01:52:21


La franja horaria es GMT +2. Ahora son las 01:16:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi