Hola
Tengo la siguiente consulta que simpre me ha funcionado, ahora de repente,
al parecer porque debe haber algún dato erroneo me da el siguiente error:
"Syntax error converting the varchar value '1,85' to a column of data type
int"
La consulta sql es la siguiente:
SELECT CAST(dbo.ALM_MOVIMIENTOS.ALMMOV_CANTIDAD *
dbo.ALM_MOVIMIENTOS.ALMMOV_NETO AS DECIMAL(18, 2)) AS Expr1,
dbo.ALM_MOVIMIENTOS_ANALITICA.ALMMOVANL_IMPORTE,
dbo.ALM_MOVIMIENTOS.ALMMOV_TIPO_E_S, dbo.ALM_MOVIMIENTOS.ALMMOV_TIPO,
dbo.ALM_MOVIMIENTOS.ALMMOV_TIPO_C_P_A, dbo.ALM_MOVIMIENTOS.ALMMOV_FECHA,
dbo.ALM_MOVIMIENTOS.ALMMOV_CODIGO
FROM dbo.ALM_MOVIMIENTOS INNER JOIN dbo.ALM_MOVIMIENTOS_ANALITICA ON
dbo.ALM_MOVIMIENTOS.ALMMOV_CODIGO =
dbo.ALM_MOVIMIENTOS_ANALITICA.ALMMOVANL_CODIGO AND
dbo.ALM_MOVIMIENTOS.ALMMOV_LINEA =
dbo.ALM_MOVIMIENTOS_ANALITICA.ALMMOVANL_LINEA
AND CAST(dbo.ALM_MOVIMIENTOS.ALMMOV_CANTIDAD *
dbo.ALM_MOVIMIENTOS.ALMMOV_NETO AS DECIMAL(18, 2)) <>
dbo.ALM_MOVIMIENTOS_ANALITICA.ALMMOVANL_IMPORTE
WHERE ...
El error esta en la parte de la sentencia
AND CAST(dbo.ALM_MOVIMIENTOS.ALMMOV_CANTIDAD *
dbo.ALM_MOVIMIENTOS.ALMMOV_NETO AS DECIMAL(18, 2)) <>
dbo.ALM_MOVIMIENTOS_ANALITICA.ALMMOVANL_IMPORTE
Ya que cuando la quito no da el error.
Los campos neto, cantidad e importe son del tipo decimal(18,2), hago el cast
porque cuando multuplico la cantidad por el neto me salen más de 4 decimales
y quiero a aproximarlo a 2 para que la sentencia me de el resultado que
busco.
Saludos, Oscar
Leer las respuestas