Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Comparación de Fechas en dos Tablas (https://www.clubdelphi.com/foros/showthread.php?t=87726)

INGFER 18-02-2015 15:52:20

Comparación de Fechas en dos Tablas
 
Buen día compañeros, soy nuevo en este foro pero necesito que alguien me ayude con el problema que tengo.

Gracias a este foro cree un calendario en sql en una tabla temporal con las fechas de un rango fechai a fechaf, pero lo que quiero hacer es comparar la tabla temporal con otra tabla que es la que registra las ausencias la cual solo tiene las fechas de las ausencias, y al comparar estos dos campos de fecha por cada fecha de la tabla ausencia me genera todo el calendario de la tabla temporal, si alguien sabe como hacer para que solo cuando la fecha de la ausencia coincida con una fecha del calendario coloque una X y cuando no coincida coloque una O, sin que repita todo el calendario por cada ausencia.

Me urge Gracias.

saludos

nlsgarcia 18-02-2015 16:02:03

INGFER,

¡Bienvenido al Club Delphi! :D

Te sugiero revisar la Guía de estilo de los foros, recomendada a todos los nuevos ingresos al Club Delphi.

¡Gracias por tu cooperación! :) ^\||/

Saludos,

Nelson.

Neftali [Germán.Estévez] 18-02-2015 16:40:31

Pues tiene pinta a que se podría solucionar utilizando LEFT JOIN o RIGHT JOIN en lugar de INNER JOIN.
Pero difícil saberlo porque no sabemos cómo lo estás haciendo, que estás haciendo, con qué BD o SGBD lo estás haciendo...
:confused::confused::confused:

INGFER 18-02-2015 20:35:40

Comparación de fechas
 
Gracias por responder.

La idea es que tengo una tabla a la cual se ingresan las ausencias y la otra que yo cree que es la que tiene el calendario.

Lo que quiero es que si la fecha de la ausencia coincide con la del calendario de la tabla temporal que coloque O de lo contrario que coloque una X, pero el querye que genere coloca la X o la O pero por cada fecha que tengo en la tabla de las ausencias me jala todas las fechas del calendario, y trabajo con base de datos en sql 2005.

Ausencias

2015/01/01
2015/01/10


Calendario del 2015/01/01 al 2015/01/31

espero me puedan ayudar saludos.

Neftali [Germán.Estévez] 19-02-2015 10:55:16

uffffff...

Debes tener en cuenta que tú tienes todos los datos y todo lo que has hecho en mente, pero nosotros tenemos que intentar adivinar qué te está pasando con los datos que das...
Y es realmente difícil!!!

¿Puedes poner el QUERY que estás utilizando?

nlsgarcia 19-02-2015 16:08:17

INGFER,

Cita:

...La idea es que tengo una tabla a la cual se ingresan las ausencias y la otra que yo cree que es la que tiene el calendario...Lo que quiero es que si la fecha de la ausencia coincide con la del calendario de la tabla temporal que coloque O de lo contrario que coloque una X...
:rolleyes:

Te sugiero revisar los puntos 7 y 8 de la Guía de estilo de los foros

¡Gracias por tu cooperación! :) ^\||/

Saludos,

Nelson.

INGFER 19-02-2015 16:53:45

Fechas
 
1 Archivos Adjunto(s)
Código SQL [-]
select distinct a.cflocid, a.ccompanyid, d.ccompany,c.cdeptno, c.cdeptname, a.cempno,b.clname + ' , ' +b.cfname fullname,
    a.dbper,a.deper,
    a.nqty, e.cdesc,f.cdesc,a.laffect,a.laffectnom,fecha, (case when fecha<>a.dbper then 'O' else 'X' end) as asistencia 
    from prausper a join prempy b on a.cempno=b.cempno join prdept c on c.cdeptno = b.cdeptno join grpsyst d on a.ccompanyid = d.ccompanyid join hrtypper e on e.ctpermno = a.ctpermno join hrreason f on f.creasno=a.creasno, 
    #fecha      
    where b.cstatus in ('A','P')
    and a.cempno between @cempnoi and @cempnof 
    and a.cdeptno between @cdeptnoi and @cdeptnof
    and( convert(varchar,a.dbper,111) between @dfechai and @dfechaf
    or convert(varchar,a.deper,111) between @dfechai and @dfechaf)
    and a.cflocid = @cflocid
    and a.ccompanyid between @ccompanyidi and @ccompanyidf

    group by fecha,a.dbper,a.deper,a.cflocid, a.ccompanyid, d.ccompany,c.cdeptno, c.cdeptname, a.cempno,b.clname,b.cfname,a.dbper,a.deper,
    a.nqty, e.cdesc,f.cdesc,a.laffect,a.laffectnom
    
union all

    select  distinct a.cflocid, a.ccompanyid, d.ccompany,c.cdeptno, c.cdeptname, a.cempno,b.clname + ' , ' +b.cfname fullname,
    a.dbper,a.deper,
    a.nqty, e.cdesc,f.cdesc,a.laffect,a.laffectnom,fecha, (case when fecha=a.dbper then 'X' else 'O' end) as asistencia 
    from prausperh a join prempy b on a.cempno=b.cempno join prdept c on c.cdeptno = b.cdeptno join grpsyst d on a.ccompanyid = d.ccompanyid join hrtypper e on e.ctpermno = a.ctpermno join hrreason f on f.creasno=a.creasno,
    #fecha  
    where b.cstatus in ('A','P')
    and a.cempno between @cempnoi and @cempnof 
    and a.cdeptno between @cdeptnoi and @cdeptnof
    and( convert(varchar,a.dbper,111) between @dfechai and @dfechaf
    or convert(varchar,a.deper,111) between @dfechai and @dfechaf)
    and a.cflocid = @cflocid
    and a.ccompanyid between @ccompanyidi and @ccompanyidf

    group by fecha,a.dbper,a.deper,a.cflocid, a.ccompanyid, d.ccompany,c.cdeptno, c.cdeptname, a.cempno,b.clname,b.cfname,
    a.nqty, e.cdesc,f.cdesc,a.laffect,a.laffectnom

    order by fecha
El query es el que esta arriba y el resultado lo coloco en una imagen adjunta.

se se dan cuenta en la imagen las columna dbper es la de las ausencias pero por aca ausencia que hay genera siempre la misma fecha, y lo que quiero es que la fecha no se duplique.

Saludos.

INGFER 20-02-2015 15:59:30

Comparación de Fechas
 
Que alguien me ayude me urge, quiero comparar la tabla de ausencias que solo tiene 3 datos con la tabla fechas que contienes todo un rango de fechas y si encuentra alguna coincidencia entre las dos tablas que coloque una X de lo contrario una O en un campo nuevo del select.


Saludos.


La franja horaria es GMT +2. Ahora son las 04:48:27.

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