Saludos,
He estado probando un query pero no he logrado hacer que me arooje los resultados deseado,
tengo una tabla con los siguientes datos
Código MySQL:
Ver originalintActivo dtdFechainicial dtdFechaFinal intFKIDCentroCosto intPorcentaje
1 2012-07-03 2012-07-05 1 99
0 2012-07-07 0000-00-00 1 1
0 2012-07-07 0000-00-00 2 33
estoy intentando crear una consulta para evitar introducir fechas del mismo dia del mismo centro de costo por ejemplo
con estas fechas podria insertar en el centro de costo numero 2
fecha inicial:2012-07-01
fecha final:2012-07-06
por que no se empalmarian las fechas
pero con estas nose deberia insertar
fecha inicial:2012-07-01
fecha final:2012-07-07
por que la fecha final estaria en el mismo dia de la fecha inicial del centro de costo actual
para evitar insertarlo hago una consulta donde si encuentra el centro de costo numero 2 dentro del rango de esas fechas me arroje un registro
Código MySQL:
Ver original//EJEMPLO DE ERROR POR QUE ME ARROJA UN REGISTRO
fecha incial :2012-07-01
fecha final:2012-07-07
SELECT intActivo
,dtdFechainicial
,dtdFechaFinal
,intFKIDCentroCosto
,intPorcentaje
FROM tblHistoricoCentroCostos
WHERE intFKIDCentroCosto
='2' AND (dtdFechaInicial
<='2012-07-01' OR dtdFechaInicial
<='2012-07-07')
Código MySQL:
Ver original//EJEMPLO DE ACIERTO POR QUE
NO REGRESA UN REGISTRO
fecha incial :2012-07-01
fecha final:2012-07-06
SELECT intActivo
,dtdFechainicial
,dtdFechaFinal
,intFKIDCentroCosto
,intPorcentaje
FROM tblHistoricoCentroCostos
WHERE intFKIDCentroCosto
='2' AND (dtdFechaInicial
<='2012-07-01' OR dtdFechaInicial
<='2012-07-06')
El detalle es que pueden ingresar vacio en la fecha final lo que indica que es indefinido el tiempo o infinito, y es lo que me causa conflicto por ejemplo en la que no deberia pasar osea arrojarme un registro es:
Código MySQL:
Ver originalfecha incial :2012-07-01
fecha final:0000-00-00
SELECT intActivo
,dtdFechainicial
,dtdFechaFinal
,intFKIDCentroCosto
,intPorcentaje
FROM tblHistoricoCentroCostos
WHERE intFKIDCentroCosto
='2' AND intFKIDEmpleado
='279' AND (dtdFechaInicial
<='2012-07-01' OR dtdFechaInicial
<='0000-00-00')
no quisiera hacer un hardcode como por ejemplo si viene 0000-00-00 colocar 3000-00-00 y asi hacer que funcione , alguno tiene otra solucion ?
de antemano gracias