Autor Tema: Consulta SQL  (Leído 4299 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Luffy

  • Kilobyte
  • **
  • Mensajes: 90
  • Reputación: +4/-2
  • Desarrollar es el arte de crecer no de crear.
    • Ver Perfil
Consulta SQL
« en: Agosto 21, 2014, 01:36:57 pm »
buen día, tengo una pregunta

En esta consulta:

Código: (SQL) [Seleccionar]
Select * From Contratos Where Id_Empresa =1 and Finca ='SAN JOSÉ' and Departamento ='LABORES CULTURALES' and Tipo_Empleado ='NÓMINA EJECUTIVA' and Estado='ALTA'

Lo que quiero es que como ven el estado lo filtra por ALTA pero hay empleados que están de baja que salieron en el mes que estoy haciendo la planilla por lo tanto tambien quiero los empleados que tengan estado BAJA y que la FechaEgreso sea menor al último mes de la nómina.

Pero no tengo mayor conocimiento de SQL por lo tanto pido su conocimiento para ayudarme a resolver dicho problema. Gracias.

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:Consulta SQL
« Respuesta #1 en: Agosto 21, 2014, 02:39:01 pm »
Estimado Luffy
 
La consulta quedaría algo así:
Código: [Seleccionar]

SELECT * FROM Contratos
WHERE Id_Empresa = 1 AND
      Finca ='SAN JOSÉ' AND
      Departamento ='LABORES CULTURALES' AND
      Tipo_Empleado ='NÓMINA EJECUTIVA' AND
      (Estado='ALTA' OR Estado='BAJA') ;
 

Que motor de base de datos usas
 
Saludos, desde algún lugar de Lima-Perú
Saludos, desde algún lugar de Lima-Perú

Luffy

  • Kilobyte
  • **
  • Mensajes: 90
  • Reputación: +4/-2
  • Desarrollar es el arte de crecer no de crear.
    • Ver Perfil
Re:Consulta SQL
« Respuesta #2 en: Agosto 21, 2014, 02:47:21 pm »
Saludos, Albertomi

Gracias por tu aporte, ya habia pensado en esa condición, pero solamente quiero los empleados que estén de baja en un periodo especifico, y los demas de alta.

Código: (SQL) [Seleccionar]
SELECT * FROM Contratos
WHERE Id_Empresa = 1 AND
      Finca ='SAN JOSÉ' AND
      Departamento ='LABORES CULTURALES' AND
      Tipo_Empleado ='NÓMINA EJECUTIVA' AND
      Estado ='ALTA' Or
      (Estado ='BAJA' si la fecha de baja está entre los dias del 1/01/2014 al 31/01/2014) ;

Edito: Utilizo MySQL Gracias

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Consulta SQL
« Respuesta #3 en: Agosto 21, 2014, 03:01:33 pm »
Creo que seria:

Código: (VB) [Seleccionar]
SELECT * FROM Contratos
WHERE Id_Empresa = 1 AND
      Finca ='SAN JOSÉ' AND
      Departamento ='LABORES CULTURALES' AND
      Tipo_Empleado ='NÓMINA EJECUTIVA' AND
      Estado ='ALTA' OR
      (Estado ='BAJA' AND FECHA BETWEEN 1/01/2014 AND 31/01/2014) ;
 

O sea, poniendo entre parentesis Baja con el rango de fecha y luego aplica el OR con el Estado,

s.e. u .o.
Me encuentras en YAcosta.com

Luffy

  • Kilobyte
  • **
  • Mensajes: 90
  • Reputación: +4/-2
  • Desarrollar es el arte de crecer no de crear.
    • Ver Perfil
Re:Consulta SQL
« Respuesta #4 en: Agosto 21, 2014, 04:51:59 pm »
Muchas Gracias a todos por responder,

Este es el código que me dio como resultado la información que necesitaba, Gracias a YvanB el me oriento en el camino.

Código: (sql) [Seleccionar]
SELECT * FROM Contratos
WHERE (Id_Empresa = 1 AND
      Finca ='SAN JOSÉ' AND
     Departamento ='LABORES CULTURALES' AND
     Tipo_Empleado ='NÓMINA EJECUTIVA' AND
     Estado ='ALTA') OR
     (Id_Empresa = 1 AND
      Finca ='SAN JOSÉ' AND
     Departamento ='LABORES CULTURALES' AND
     Tipo_Empleado ='NÓMINA EJECUTIVA' AND
     Estado ='BAJA' AND Egreso BETWEEN '2014-08-15' AND '2014-08-31')

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Consulta SQL
« Respuesta #5 en: Agosto 21, 2014, 05:20:46 pm »
¿No funcionaría de igual manera así?

Código: (SQL) [Seleccionar]
SELECT * FROM Contratos
WHERE Id_Empresa = 1 AND
      Finca ='SAN JOSÉ' AND
      Departamento ='LABORES CULTURALES' AND
      Tipo_Empleado ='NÓMINA EJECUTIVA' AND
      (Estado ='ALTA' OR
      ((Estado ='BAJA' AND Egreso BETWEEN '2014-08-15' AND '2014-08-31'))

Jerónimo
« última modificación: Agosto 21, 2014, 05:22:42 pm por Jeronimo »

Luffy

  • Kilobyte
  • **
  • Mensajes: 90
  • Reputación: +4/-2
  • Desarrollar es el arte de crecer no de crear.
    • Ver Perfil
Re:Consulta SQL
« Respuesta #6 en: Agosto 21, 2014, 06:19:00 pm »
Buenas tardes,

Pues probe así y no me funciono.

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Consulta SQL
« Respuesta #7 en: Agosto 21, 2014, 07:23:51 pm »
Perdón, puse un paréntesis de más.
Sería así, a ver si funciona:
Código: (SQL) [Seleccionar]
SELECT * FROM Contratos
WHERE Id_Empresa = 1 AND
      Finca ='SAN JOSÉ' AND
      Departamento ='LABORES CULTURALES' AND
      Tipo_Empleado ='NÓMINA EJECUTIVA' AND
      (Estado ='ALTA' OR
      (Estado ='BAJA' AND Egreso BETWEEN '2014-08-15' AND '2014-08-31'))

Jerónimo