SQL Server - Error Intercalacion

 
Vista:

Error Intercalacion

Publicado por Patricia (6 intervenciones) el 18/10/2006 01:34:35
Al momento de correr el procedimiento en Sql Server obtengo el siguiente error

Servidor: mensaje 446, nivel 16, estado 9, procedimiento Report_prueba, línea 370
No se puede resolver el conflicto de intercalación para el operador equal to.

Detectamos que aparece al nivel del update en la clausula where en la ultima condicion.

UPDATE #AUXILIAR
SET Infomacion = ISNULL((SELECT SUM(ROUND(T2.IMPORTE,2))
FROM REC_HISTO T2, UBICACION T3, REG_IMSS T4
WHERE T2.CLA_EMP = 2
AND T2.CLA_TRAB = t1.clatrab
AND T2.CLA_PER IN (515,537,540)
AND T2.NOMINA Between @nNumNominaIni and @nNumNominaFin
AND T2.CLA_EMP = T3.CLA_EMP
AND T2.CLA_UBI = T3.CLA_UBI
AND T3.REG_IMSS = T4.REG_IMSS
/* Aqui */ AND t4.NUM_IMSS = t1.ImssEmp
group by t4.NUM_IMSS),0)
FROM #AUXILIAR t1

De hecho lo corri con valores por default y ahi si lo hace. Pero al momento de ejecutarlo toralmente consigo el error.

El valor de informacion es float al igual que el del importe.
El valor de t4.NUM_IMSS es char(16) al igual que t1.RegImssEmpresa

NO entiendo en que parte se esta haciendo bolas.

Ojala puedan ayudarme.

Saludos.
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:Error Intercalacion

Publicado por Francisco (24 intervenciones) el 18/10/2006 21:33:54
El error ocurre por q estas haciendo la relación entre dos campos de texto que tienen distinto tipo de intercalacion, eso se define cuado creas la tabla, generalmente queda con el que tenga el servidor definido por defecto de acuerdo aa su configuracion regional(Idioma).....

con la sentencia collate tu defines el tipo de intercalacion por ejemplo en la definicion de una tabla X tenemos este campo

[ADEntidad_Description] [char] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

puedes ver el script de las tablas q estas utilizando y ver q tipo de intercalacion tienen definida, en este ejemplo es "SQL_Latin1_General_CP1_CI_AS"

con la misma sentencia Collate se puede resolver en la query el problema

salu2
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