Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2019
donpedro donpedro is offline
Miembro
 
Registrado: nov 2009
Posts: 102
Poder: 0
donpedro cantidad desconocida en este momento
Ayuda con un Query para comparar

Hello, bendiciones para todos.

Estoy realizando un sistema en Delphi 2009 y Sql Server 2012.

Tengo un modulo donde registro horas por ejemplo:

08:00 am - 08:30 am
08:30 am - 09:00 am

Etc...

Y tengo un modulo para registrar CITAS donde tengo un DBLookUpCombobox que esta conectado al ListSource del DataSet del modulo Horas.

Lo que deseo realizar es que el DBLookUpCombobox solo me presente las horas que no han sido selecionadas en una fecha determinada.

Me explico:

Si se registra una CITA el 15/8/2019 a las 08:00 am - 08:30 am cuando tenga que registrar otra cita en la misma fecha que en el DBLookUpCombobox solo me aparezcan las Horas disponibles y que la hora 08:00 am - 08:30 am no aparezca.

Espero haberme explicado. Gracias anticipadas.
Responder Con Cita
  #2  
Antiguo 13-08-2019
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por donpedro Ver Mensaje
...Lo que deseo realizar es que el DBLookUpCombobox solo me presente las horas que no han sido selecionadas en una fecha determinada.

Me explico:

Si se registra una CITA el 15/8/2019 a las 08:00 am - 08:30 am cuando tenga que registrar otra cita en la misma fecha que en el DBLookUpCombobox solo me aparezcan las Horas disponibles y que la hora 08:00 am - 08:30 am no aparezca...
Sugerencia: ¿por qué no separas horas y días? Es un poco menos complicado trabajar con dos campos que permitan hacer un NOT IN como índice y de ahí tomar los datos como los que requieres (DbLookupComboBox o en un LookupCombo simple) y evitas la complicación de pensar y centrar tus consultas. A veces, atomizar los datos es mejor que tener monolitos inmanejables...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #3  
Antiguo 13-08-2019
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
La tarea es sencilla si la piensas.

Tienes una tabla de rangos de horas y una de citas programadas:

Código SQL [-]
--CITAS
08:00 am - 08:30 am  15/8/2019 
09:00 am - 9:30 am   16/8/2019

Solo tienes que hacer un WHERE del nuevo rango y la fecha. Si existe entonces ya esta agarrada. Para hacerlo como un conjunto solo creas una tabla dinamica en memoria (no he chequeado el sql pero es maso):

Código SQL [-]
SELECT current_date as fecha CROSS JOIN TablaRangos R WHERE (current_date, R.rango) NOT IN (SELECT (date, R.rango) FROM citas)
__________________
El malabarista.

Última edición por mamcx fecha: 13-08-2019 a las 20:37:50.
Responder Con Cita
  #4  
Antiguo 13-08-2019
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Creo que es más sencillo.

Si tienes una tabla de CITAS y otra de HORARIOS, haces un left join y te quedas xon los que tengan la tabla de citas a nulos.

Código SQL [-]
SELECT * FROM HORARIOS
LEFT JOIN CITAS ON ( campo clave = campo clave)
WHERE CITAS.CAMPOX IS NULL

Creo que se entiende el código.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 13-08-2019
donpedro donpedro is offline
Miembro
 
Registrado: nov 2009
Posts: 102
Poder: 0
donpedro cantidad desconocida en este momento
Cita:
Empezado por TiammatMX Ver Mensaje
Sugerencia: ¿por qué no separas horas y días? Es un poco menos complicado trabajar con dos campos que permitan hacer un NOT IN como índice y de ahí tomar los datos como los que requieres (DbLookupComboBox o en un LookupCombo simple) y evitas la complicación de pensar y centrar tus consultas. A veces, atomizar los datos es mejor que tener monolitos inmanejables...
Las horas y los dias estan separados
Responder Con Cita
  #6  
Antiguo 13-08-2019
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por fjcg02 Ver Mensaje
Creo que es más sencillo.

Si tienes una tabla de CITAS y otra de HORARIOS, haces un left join y te quedas xon los que tengan la tabla de citas a nulos.
Con join tambien se puede pero le falta tomar en cuenta las fechas..
__________________
El malabarista.
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
ayuda para exportar query a excel microbiano Varios 5 19-09-2011 22:49:22
ayuda con query para Mysql fecha. vroa74 Conexión con bases de datos 11 06-06-2008 15:56:00
Ayuda por favor para correr un query en Delphi a una base de datos en Mysql charlyfitlh MySQL 10 01-11-2007 20:28:49
ayuda comparar Handle JerS API de Windows 3 30-10-2006 20:19:01
Ayuda para comparar Horas JerS Varios 4 21-09-2005 17:06:31


La franja horaria es GMT +2. Ahora son las 14:07:50.


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