Foros del Web » Programando para Internet » ASP Clásico »

Filtrar un recordset con otro recordset

Estas en el tema de Filtrar un recordset con otro recordset en el foro de ASP Clásico en Foros del Web. A ver si alguien me puede dar una mano con esto. Necesito hacer lo siguiente. Tengo un listado de horarios disponibles para turnos de un ...
  #1 (permalink)  
Antiguo 03/09/2009, 09:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Filtrar un recordset con otro recordset

A ver si alguien me puede dar una mano con esto.

Necesito hacer lo siguiente. Tengo un listado de horarios disponibles para turnos de un centro médico (14:00, 14:15,..., 20:45) y tengo un listado de turnos donde figura el horario del turno.

Entonces, me creo un recordset con todos los turnos por hora para una fecha determinada

"SELECT Hora FROM Turnos WHERE Fecha =" + var

Y después quiero obtener qué horarios están disponibles para esa fecha, es decir, tomo de la tabla completa de horarios todos, pero quiero que muestro sólo aquellos que están disponibles.

"SELECT Hora FROM HorariosTurnos WHERE Hora NOT IN" ?????

Acá es donde fallo.

Pensé en hacer un anidado al estilo

"SELECT Hora FROM HorariosTurnos WHERE Hora NOT IN (SELECT Hora FROM Turnos WHERE Fecha =" + var + ")"

Pero no me funciona, me muestra todos los horarios.

Básicamente lo que quiero hacer es una resta de conjuntos y que que me queden sólo aquellos que no están en la intersección.

Alguna pista??

Gracias.
  #2 (permalink)  
Antiguo 03/09/2009, 12:38
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Filtrar un recordset con otro recordset

Supongo te falta agregar la condición de fecha a la tabla HorariosTurnos
  #3 (permalink)  
Antiguo 03/09/2009, 13:07
 
Fecha de Ingreso: septiembre-2009
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Filtrar un recordset con otro recordset

Cita:
Iniciado por Myakire Ver Mensaje
Supongo te falta agregar la condición de fecha a la tabla HorariosTurnos
Es que en realidad la tabla HorariosTurnos sólo es un listado de horarios (de 14:00 a 20:45 creciendo de a 15 minutos) que es el que yo quiero filtrar.

Yo lo que quiero es obtener un listado de las Horas que están en la tabla HorariosTurnos y que no están en la tabla Turnos (que sí debe filtrar por fecha).

Quizás no estoy siendo del todo claro.
  #4 (permalink)  
Antiguo 03/09/2009, 13:12
 
Fecha de Ingreso: septiembre-2009
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Filtrar un recordset con otro recordset

Mando las tablas como para que se vea con más claridad lo que pretendo hacer.

Lo que yo quiero hacer es crear un recordset que se fije para una fecha que le paso como parámetro (en el ejemplo 01/01/2009) y que de la tabla HorariosTurnos me seleccione sólo aquellos que no aparezcan en la tabla Turnos para la fecha pasada como parámetro. En negrita marco los que no deberían aparecer para la fecha 01/01/2009

Tabla HorarioTurnos
IdHorario Hora
1 -14:00
2 -14:15
3 -14:30
4 -14:45
5 -15:00
6 -15:15
7 -15:30
8 -15:45
9 -16:00
10 -16:15
11 -16:30
12 -16:45
13 -17:00
14 -17:15
15 -17:30
16 -17:45
17 -18:00
18 -18:15
19 -18:30
20 -18:45
21 -19:00
22 -19:15
23 -19:30
24 -19:45
25 -20:00
26 -20:15
27 -20:30
28 -20:45


Tabla Turnos
IdTurno Fecha Hora
1 - 01/01/2009 - 14:15
2 - 01/01/2009 - 20:15
3 - 02/02/2010 - 14:00
  #5 (permalink)  
Antiguo 03/09/2009, 15:05
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Filtrar un recordset con otro recordset

Hola

Hace mucho que no uso sql. ¿Podría ser algo así?

Código asp:
Ver original
  1. "SELECT Turnos.Hora, Turnos.Fecha, HorarioTurnos.Hora FROM Turnos,HorarioTurnos  WHERE Turnos.Fecha =" + var + " and Turnos.Fecha <> HorarioTurnos.Fecha"

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 01:10.