Arithmetic overflow error converting expression to data type int in count

-1

I've seen several answers about this message

  

Arithmetic overflow error converting expression to data type int.

However, everything they indicated did not work. It only gives error when I use count .

Code:

SELECT 
    COUNT(DML.NK_CO_SEQ_LOTERICA)
FROM DW_XCAP.XCAP.DM_LOTERICA AS DML
JOIN DW_XCAP.XCAP.DM_PEDIDO AS DMP ON DMP.CO_LOTERICA = DML.CO_LOTERICA
JOIN DW_XCAP.XCAP.DM_PRODUTO AS DMPR ON DMPR.NK_CO_SEQ_PRODUTO = DML.CO_PRODUTO
JOIN DW_XCAP.XCAP.DM_ATENDIMENTO AS DMA ON DMA.CO_LOTERICA = DMP.CO_LOTERICA
JOIN DW_XCAP.XCAP.DM_TITULO AS DMT ON DMT.CO_PRODUTO = DML.CO_PRODUTO AND DMT.CO_LOTERICA = DML.CO_LOTERICA
JOIN DW_XCAP.XCAP.DM_LOG_ENTRADA AS DME ON DME.CO_PRODUTO = DML.CO_PRODUTO
WHERE DML.CO_PRODUTO IS NOT NULL
AND DME.CO_PRODUTO <> 0
    
asked by anonymous 09.01.2017 / 17:44

2 answers

0

Try using COUNT_BIG

SELECT 
    COUNT_BIG(DML.NK_CO_SEQ_LOTERICA)
FROM DW_XCAP.XCAP.DM_LOTERICA AS DML
JOIN DW_XCAP.XCAP.DM_PEDIDO AS DMP ON DMP.CO_LOTERICA = DML.CO_LOTERICA
JOIN DW_XCAP.XCAP.DM_PRODUTO AS DMPR ON DMPR.NK_CO_SEQ_PRODUTO = DML.CO_PRODUTO
JOIN DW_XCAP.XCAP.DM_ATENDIMENTO AS DMA ON DMA.CO_LOTERICA = DMP.CO_LOTERICA
JOIN DW_XCAP.XCAP.DM_TITULO AS DMT ON DMT.CO_PRODUTO = DML.CO_PRODUTO AND DMT.CO_LOTERICA = DML.CO_LOTERICA
JOIN DW_XCAP.XCAP.DM_LOG_ENTRADA AS DME ON DME.CO_PRODUTO = DML.CO_PRODUTO
WHERE DML.CO_PRODUTO IS NOT NULL
AND DME.CO_PRODUTO <> 0
    
09.01.2017 / 19:59
0

This error happens when the value exceeds the specified size of the column.

An example of how this error occurs: You have 3 columns ( c1 , c2 and c3 ) set to INTEGER , c1 = ([c2]*[c3]) . If the data in c2 and / or c3 are too large, c1 will exceed the allowed limit for INTERGER and you will get this error.

To correct this error, you have to check the size of the target column. One tip is to reduce the allowable values in the formula's source columns or increase the size of the target column.

    
09.01.2017 / 21:28