complicado?
Publicado por eljhonb (124 intervenciones) el 14/08/2007 19:03:58
tengo la siguiente consulta
select *
From [importacion].dbo.ztrao JOIN TB_PILA_Novedad ON Tra_cedul = Id_empleado
Where (Isnumeric(Id_empleado)=1 and isdate(periodo_pago+'01')=1 and Nov_retiro='x'
and est_transmision = 1 and Estado_registro = 0)
and (isdate(Tra_ferere)=1
AND datediff(month,Tra_ferere,Periodo_pago+'01') = 0)
el problema:
esta consulta me está generando un error en el datediff. el campo Tra_ferere, no todos son de tipo date, hay algunos registros que tienen valor 0, lo cual me genera un error al tratar de convertir el campo a date para hacer el datediff. Esto debería contrarestarse con la condición que dice isdate(Tra_ferere)=1, pero al mirar el plan de ejecución me doy cuenta que primero trata de hacer el datediff y luego el isdate(tra_ferere).
cómo "obligar" el sql para que primero realice el isdate(tra_ferere) y luego sí realice el datediff?
Muchas Gracias!
select *
From [importacion].dbo.ztrao JOIN TB_PILA_Novedad ON Tra_cedul = Id_empleado
Where (Isnumeric(Id_empleado)=1 and isdate(periodo_pago+'01')=1 and Nov_retiro='x'
and est_transmision = 1 and Estado_registro = 0)
and (isdate(Tra_ferere)=1
AND datediff(month,Tra_ferere,Periodo_pago+'01') = 0)
el problema:
esta consulta me está generando un error en el datediff. el campo Tra_ferere, no todos son de tipo date, hay algunos registros que tienen valor 0, lo cual me genera un error al tratar de convertir el campo a date para hacer el datediff. Esto debería contrarestarse con la condición que dice isdate(Tra_ferere)=1, pero al mirar el plan de ejecución me doy cuenta que primero trata de hacer el datediff y luego el isdate(tra_ferere).
cómo "obligar" el sql para que primero realice el isdate(tra_ferere) y luego sí realice el datediff?
Muchas Gracias!
Valora esta pregunta


0