Usuário com melhor resposta
URGENTE erro Sqlserver no SUM para colunas repetidas

Pergunta
-
Pessoal, tenho a seguinte procedure
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
execute sp_relatorio_bc_somaALTER procedure [dbo].[sp_relatorio_bc_soma] as
DECLARE
-- @data_atual AS varchar(5),
-- @mes_atual as varchar(20),
@CNL AS VARCHAR(50),
@status as varchar(3),
@servico as varchar(3),
@relatorio as varchar(2),
@total AS INT,
@sql NVARCHAR(1000)DECLARE CRS_Soma CURSOR FAST_FORWARD FOR
select CNL, status, servico, relatorio, sum(isnull(mes,0)) AS total
from (
select CNL, status, servico, relatorio, isnull(M1_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
union
select CNL, status, servico, relatorio, isnull(M2_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
union
select CNL, status, servico, relatorio, isnull(M3_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M4_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M5_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M6_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M7_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M8_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M9_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M10_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M11_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
UNION
select CNL, status, servico, relatorio, isnull(M12_2008,0) AS MES
from relatorio_rdbc_sumario_mensal
) a
where cnl <> ''
group by CNL,status, servico, relatorioOPEN CRS_SOMA
FETCH NEXT FROM CRS_SOMA INTO @CNL, @status, @servico, @relatorio, @TOTALWHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'update relatorio_rdbc_sumario_mensal set total = ' + CONVERT(VARCHAR, @TOTAL) +
' where CNL = ''' + @CNL + '''' +
' and status = ' + char(39) + @status + char(39) +
' and servico = ' + char(39) + @servico + char(39) +
' and relatorio = ' + char(39) + @relatorio + char(39)
EXEC (@sql)
FETCH NEXT FROM CRS_SOMA INTO @CNL, @status, @servico,@relatorio, @TOTAL
ENDCLOSE CRS_SOMA
DEALLOCATE CRS_SOMAGO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Quando eu executo a soma....a procedure esta errando quando duas colunas tem valores iguaisExemplo.:
m1_2008 M2_2008 .... tOTAL (campo q recebe o total de todas as colunas)
26 26 26
outro exemplo
M1_2008 m2_2008 ... TOTAL
2 10 12
Alguem tem ideia do q pode estar provocando esse erro?
acredito que o erro possa estar na query. Mas nao entendo pq.
Respostas
Todas as Respostas
-
-
Emanuel, vc me salvou !
Voce nao tem noção de quanto estou grato por sua ajuda.
FUNCIONOU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Que Deus t pague em dobro!
E quando vier ao Rio de Janeiro me avise que eu te pago um almoço!
forte abraço, sucesso!
-
-
-
Blz, pode contar comigo.
- Editado Emanuel Peixoto sábado, 4 de abril de 2009 18:02 .