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 23-09-2004
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Problemas con extracción de datos

Hola gente... uso paradox y delphi 5... tengo la siguiente consulta->
Código Delphi [-]
Select DatosPersonales_id,

DAT_Apellido + ', ' + DAT_Nombres,

ASI_id_Profesor,

ASI_HoraEntrada,

ASI_HoraSalida,

ASI_FechaEntrada,

ASI_FechaSalida,

MPR_Anio,

MPR_Hora,

MAT_Materia,

MPR_Dia,

MPR_Division

From DatosPersonales.db,

Asistencia.db,

Profesores.db,

MateriaProfesor.db,

Materias.db

Where PRO_id_DatosPersonales = DatosPersonales_id

and ASI_id_Profesor = Profesores_id //aqui deberia modificar???

and MPR_id_Profesor = Profesores_id

and MPR_id_Materia = Materias_Id

and ASI_FechaEntrada = Fecha

and MPR_Dia = Dia /// Jueves por ejemplo

and PRO_Condicion = 'A'

and MPR_Turno = Turno

order by 8, 12

con esta consulta recupero todos los que reunen las condiciones puestas...
Lo que no puedo hacer es recuperar los profesores que no figuran en la tabla asistencia dentro de la fecha pasada por parametro.. (habrá prof que no estén en la tabla asistencia por que no asistieron pero si debian venir...
sugerencias....¡bienvenidas!
Gracias
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
Responder Con Cita
  #2  
Antiguo 24-09-2004
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
Debes usar un OUTER JOIN, por ejemplo:

Código SQL [-]
select campos
from Asistencias
left join Profesores
  on Profesores.Id = Asistencias.Id_Profesor

// Saludos
Responder Con Cita
  #3  
Antiguo 26-09-2004
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Gracias Roman...

En la prueba me trae sólo el mismo prof que firmo pero más veces (repetido)...
Aclaro tablas paradox ... delphi 5 ... sql explorer ...
Saludos
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.

Última edición por Pablo Carlos fecha: 27-09-2004 a las 01:37:22.
Responder Con Cita
  #4  
Antiguo 27-09-2004
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Cita:
Empezado por Pablo Carlos
En la prueba me trae sólo el mismo prof que firmo pero más veces (repetido)...
Aclaro tablas paradox ... delphi 5 ... sql explorer ...
Saludos
Saludos
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
Responder Con Cita
  #5  
Antiguo 29-09-2004
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Pueden revisar este codigo (sql)?

Hola.. Este código me trae lo que necesito pero exactamente 70 veces repetido.. ¿pueden revisarlo?
Código:
Select DatosPersonales_id, DAT_Apellido + ', ' + DAT_Nombres,ASI_id_Profesor,ASI_HoraEntrada,ASI_FechaEntrada,
MPR_Dia, MPR_Division
From  DatosPersonales.db,Asistencia.db,MateriaProfesor.db,	  Materias.db,Profesores.db
left JOIN Profesores on
Profesores_id = ASI_id_Profesor
where  PRO_id_DatosPersonales = DatosPersonales_id
	and   ASI_id_Profesor = Profesores_id
	and   MPR_id_Profesor = Profesores_id
	and   MPR_id_Materia = Materias_Id
	and  ASI_FechaEntrada = '09/09/2004' 
	and  MPR_Dia = 'Jueves'
	and PRO_Condicion0 = 'A'
	and  MPR_Turno = 'T'
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
Responder Con Cita
  #6  
Antiguo 29-09-2004
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á ayude que quites profesores.db de la cláusula FROM ya que ya la incluyes en el JOIN.

// Saludos
Responder Con Cita
  #7  
Antiguo 29-09-2004
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Cita:
Empezado por roman
Debes usar un OUTER JOIN, por ejemplo:

Código SQL [-]
select campos
from Asistencias
left join Profesores
on Profesores.Id = Asistencias.Id_Profesor

// Saludos
De todos modos distes el puntapie inicial... ademas que toda la solución estaba, como dijistes, en left join...
Gracias roman
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
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


La franja horaria es GMT +2. Ahora son las 00:00:58.


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