SQL - consulta SQL

   
Vista:

consulta SQL

Publicado por Rossana (3 intervenciones) el 10/01/2010 18:26:47
Hola tengo un duda sobre un proceso que debo realizar, tengo una bse de datos con las tablas licencia, profesor, la idea es que en la tabla profesor esten guardados los datos de los funcionarios profesores, los cuales cuentan con (rut, nombre, especialidad) entonces conecto esta tabla con licencias por medio del rut, debido a que si un funcionarios presenta una licencia se almacenará (num_licencia, rut (el cual es de algun funcionario ya presente en la tabla profesor), etc.) una vez ingresada una nueva licencia yo debo buscar en la tabla profesores quienes podria reemplazar a este funcionario el cual tiene una especialidad por ejemplo 'Castellano' entonces deberia ser capaz de buscar a todos los profesores con especialida en Castellano. Ahi no puedo hacerlo. De ante mano gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta SQL

Publicado por Denn (2 intervenciones) el 11/01/2010 20:04:03
Hola Rossana:

Lo unico que debes hacer es hacer un Select a los campos que requieras de la siguiente forma:

SELECT a.Rut, a.Nombre, a.Especialidad, b.numLicencia
FROM Profesores a INNER JOIN Licencias b ON a.Rut = b.Rut
WHERE a.Especialidad = 'Castellano'

Te recomiendo leas un manual de SQL y que tambien cuides la logica de tus tablas dependiendo las reglas de negocio.

Preguntate, si una licencia es unica para cada profesor, relacion 1:1 o una licencia es para varios profesores 1:n. Si es 1:1 te recomiendo que el campo numLicencia lo metas en la tabla de profesores y asi ya no tendras que hacer un join a ambas tablas sino a una sola.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta SQL

Publicado por Rossana (3 intervenciones) el 12/01/2010 03:08:05
Hola, muchas gracias por responder =) sip si tengo noción de programación en SQL solo que no he estructurado bien la base de datos, quisiera preguntar una ultima cosa; si quiero programar en SQL server, administrador de BD que no acepta programación orientada a objeto, entonces tengo dos tipos de funcionarios; profesor y asistentes de educación, para ambos se debe realizar el mismo profeso pero cada uno tiene caracteristicas distintas, tambien tiene similares como el nombre, rut, telefono, dirección, etc. pero profesores tienen especialidad, en cambio los asistentes solo deben contar con enseñanza media, esto sería facil si se hiciera orientada a objeto heredando ciertos datos en comun pero separando ambos tipos de funcionarios, sin embargo de forma relacional tengo la duda de como se programaría. Si me puedes ayudar lo agradecería mucho, si no, muchas gracis de todas formas :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta SQL

Publicado por Rossana (3 intervenciones) el 12/01/2010 05:33:25
Ahora pensando en tu respuesta, creo que la sentencia que tu escribiste me devolvería solo la persona que presento la licencia y que tiene especialidad en castellano, ya que dice que te devuelva todas las personas que tengan igual rut al que se presenta en las licencias y que a su vez tengan especialidad en castellano, y la idea es que devuelva a todos los demas menos a esa persona. Nose si estaré equivocada :s
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:consulta SQL

Publicado por roger (93 intervenciones) el 12/01/2010 17:21:56
si lo que necesitas es los profesores de una especialidad que no se encuentren en la tabla licencias, podrias hacerlo asi

SELECT a.Rut, a.Nombre
FROM Profesores a
WHERE a.Especialidad = 'Castellano'
AND NOT EXISTS(SELECT b.rut FROM Licencias b WHERE b.rut = a.rut)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar