SQL - consulta sql

 
Vista:

consulta sql

Publicado por javier (39 intervenciones) el 14/08/2008 22:39:43
Hola
Necesito una consulta que me traiga en diferentes columnas los datos de dos parámetros diferentes
Es decir necesito hacer el filtro sobre dos fechas (fecha_inicial y fecha_final) me traiga un acumulado de días en dos columnas
Cedula fecha1 fecha2
142535 50 60
282678 35 48

La consulta normal me trae
Cedula dias
142535 50
142535 60
282678 35
282678 48
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 Isaias (5072 intervenciones) el 15/08/2008 01:49:36
¿Y cual es tu query?
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 javier (39 intervenciones) el 15/08/2008 17:24:53
SELECT NM_CONVA.COD_EMPR,
NM_CONVA.COD_EMPL,
NM_CONVA.FEC_CONS,
SO_AREAS.NOM_AREA,
(SELECT CAST((NM_CONVA.DIA_CONS) AS INTEGER) FROM NM_CONVA WHERE FEC_CONS = :FEC_INICIAL AND NM_CONVA.COD_EMPR = BI_EMPLE.COD_EMPR AND NM_CONVA.COD_EMPL = BI_EMPLE.COD_EMPL AND BI_EMPLE.COD_EMPR = NM_CONTR.COD_EMPR ) AS DIAS 1,
(SELECT CAST((NM_CONVA.DIA_CONS) AS INTEGER) FROM NM_CONVA WHERE FEC_CONS = :FEC_FINAL AND NM_CONVA.COD_EMPR = BI_EMPLE.COD_EMPR AND NM_CONVA.COD_EMPL = BI_EMPLE.COD_EMPL AND BI_EMPLE.COD_EMPR = NM_CONTR.COD_EMPR ) AS DIAS 2,
BI_EMPLE.APE_EMPL || ' ' || BI_EMPLE.NOM_EMPL AS NOMBRE,
BI_CARGO.NOM_CARG,
GN_CCOST.NOM_CCOS,
GN_EMPRE.NOM_EMPR
FROM NM_CONVA, BI_EMPLE, NM_CONTR, BI_CARGO, GN_CCOST,
GN_EMPRE,SO_AREAS
WHERE NM_CONVA.COD_EMPR = BI_EMPLE.COD_EMPR AND
NM_CONVA.COD_EMPL = BI_EMPLE.COD_EMPL AND
BI_EMPLE.COD_EMPR = NM_CONTR.COD_EMPR AND
BI_EMPLE.COD_EMPL = NM_CONTR.COD_EMPL AND
NM_CONTR.COD_EMPR = BI_CARGO.COD_EMPR AND
NM_CONTR.COD_CARG = BI_CARGO.COD_CARG AND
NM_CONTR.COD_EMPR = GN_CCOST.COD_EMPR AND
NM_CONTR.COD_CCOS = GN_CCOST.COD_CCOS AND
NM_CONTR.COD_EMPR = SO_AREAS.COD_EMPR AND
NM_CONTR.COD_AREA = SO_AREAS.COD_AREA AND
NM_CONTR.COD_EMPR = GN_EMPRE.COD_EMPR AND
NM_CONTR.IND_ACTI='A' AND
NM_CONVA.FEC_CONS IN (:FEC_INICIAL, :FEC_FINAL)
ORDER BY NM_CONVA.COD_EMPL,NM_CONVA.FEC_CONS
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 Isaias (5072 intervenciones) el 15/08/2008 19:18:06
¿Que motor de base de datos estas ocupando?
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 Jorge Morales (25 intervenciones) el 21/08/2008 23:14:05
Prueba con between o usa los operadores >=, <=

SELECT NM_CONVA.COD_EMPR,
NM_CONVA.COD_EMPL,
NM_CONVA.FEC_CONS,
SO_AREAS.NOM_AREA,
(SELECT CAST((NM_CONVA.DIA_CONS) AS INTEGER) FROM NM_CONVA WHERE FEC_CONS = :FEC_INICIAL AND NM_CONVA.COD_EMPR = BI_EMPLE.COD_EMPR AND NM_CONVA.COD_EMPL = BI_EMPLE.COD_EMPL AND BI_EMPLE.COD_EMPR = NM_CONTR.COD_EMPR ) AS DIAS 1,
(SELECT CAST((NM_CONVA.DIA_CONS) AS INTEGER) FROM NM_CONVA WHERE FEC_CONS = :FEC_FINAL AND NM_CONVA.COD_EMPR = BI_EMPLE.COD_EMPR AND NM_CONVA.COD_EMPL = BI_EMPLE.COD_EMPL AND BI_EMPLE.COD_EMPR = NM_CONTR.COD_EMPR ) AS DIAS 2,
BI_EMPLE.APE_EMPL || ' ' || BI_EMPLE.NOM_EMPL AS NOMBRE,
BI_CARGO.NOM_CARG,
GN_CCOST.NOM_CCOS,
GN_EMPRE.NOM_EMPR
FROM NM_CONVA, BI_EMPLE, NM_CONTR, BI_CARGO, GN_CCOST,
GN_EMPRE,SO_AREAS
WHERE NM_CONVA.COD_EMPR = BI_EMPLE.COD_EMPR AND
NM_CONVA.COD_EMPL = BI_EMPLE.COD_EMPL AND
BI_EMPLE.COD_EMPR = NM_CONTR.COD_EMPR AND
BI_EMPLE.COD_EMPL = NM_CONTR.COD_EMPL AND
NM_CONTR.COD_EMPR = BI_CARGO.COD_EMPR AND
NM_CONTR.COD_CARG = BI_CARGO.COD_CARG AND
NM_CONTR.COD_EMPR = GN_CCOST.COD_EMPR AND
NM_CONTR.COD_CCOS = GN_CCOST.COD_CCOS AND
NM_CONTR.COD_EMPR = SO_AREAS.COD_EMPR AND
NM_CONTR.COD_AREA = SO_AREAS.COD_AREA AND
NM_CONTR.COD_EMPR = GN_EMPRE.COD_EMPR AND
NM_CONTR.IND_ACTI='A' AND
----------------------------------------------------------------
NM_CONVA.FEC_CONS BETWEEN :FEC_INICIAL AND :FEC_FINAL
/* ó NM_CONVA.FEC_CONS >= :FEC_INICIAL AND NM_CONVA.FEC_CONS <= :FEC_FINAL */
----------------------------------------------------------------
ORDER BY NM_CONVA.COD_EMPL,NM_CONVA.FEC_CONS

eso sí, tus campos de fecha deben de ser de tipo datetime ó algun tipo de fecha, de lo contrario tendrás que hacer la conversion (cast, convert) para que funcione correctamente.

Saludos!!!!
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 javier (39 intervenciones) el 25/08/2008 18:07:23
Jorge, gracias con between tampoco me funciona, el query lo inicié desde sql en un dts con conexiones a oracle, pero después tuve que pasarlo a una sesión de reportes que maneja el aplicativo en el que trabajo. Pero me serviria en SQL Server.
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