Somar valor de campo
Tenho a seguine sql para somar alguns campos
SQL = "SELECT DISTINCT A.ID_FAZENDA, A.NOME_FAZENDA, " & _
" (Select Coalesce(Sum(RAM.VALORT_MAQUINARIOS),0) From REGISTRO_APLICACOES_MAQUINARIO RAM where B.COD_FAZENDA = A.ID_FAZENDA) as VALOR_TOTAL_MAQUINARIOS, " & _
" (Select Coalesce(Sum(RAI.VALOR_TOTAL),0) From REGISTRO_APLICACOES_INSUMO RAI where B.COD_FAZENDA = A.ID_FAZENDA) as VALOR_TOTAL_INSUMOS, " & _
" (Select Coalesce(Sum(RAF.VALORT_FUNCIONARIOS),0) From REGISTRO_APLICACOES_FUNC RAF where B.COD_FAZENDA = A.ID_FAZENDA) as VALOR_TOTAL_FUNCIONARIOS, " & _
" (Select Coalesce(Sum(RMC.VALOR_TOTAL),0) From RAST_MOV_COLHEITA RMC where C.COD_FAZENDA = A.ID_FAZENDA) as COLHEITA_FUNCIONARIOS, " & _
" (Select Coalesce(Sum(RMM.VALOR_TOTAL),0) From RAST_MOVIMENTACAO_MAQUINARIO RMM where C.COD_FAZENDA = A.ID_FAZENDA) as COLHEITA_MAQUINARIOS, " & _
" (Select Coalesce(Sum(AB.VALOR_TOTAL),0) From ABASTECIMENTO AB where C.COD_FAZENDA = A.ID_FAZENDA) as ABASTECIMENTO, " & _
" (Select Coalesce(Sum(ME.VALOR),0) From MANUTENCAO_EQUIPAMENTOS ME where C.COD_FAZENDA = A.ID_FAZENDA) as MANUTENCAO_MAQUINARIOS, " & _
" (Select Coalesce(sum(FP.VALOR_TOTAL),0) From FIN_PAGAMENTOS FP LEFT JOIN FIN_PLANO_CONTAS FPC ON FP.COD_PLANO_CONTAS=FPC.ID_PLANO_CONTAS WHERE FPC.CUSTO='Sim' and B.COD_FAZENDA = A.ID_FAZENDA) as PAGAMENTOS , " & _
" (Select Coalesce(Sum(RAM.VALORT_MAQUINARIOS),0) From REGISTRO_APLICACOES_MAQUINARIO RAM where B.COD_FAZENDA = A.ID_FAZENDA) + (Select Coalesce(Sum(RAI.VALOR_TOTAL),0) From REGISTRO_APLICACOES_INSUMO RAI where B.COD_FAZENDA = A.ID_FAZENDA)+ (Select Coalesce(Sum(RAF.VALORT_FUNCIONARIOS),0) From REGISTRO_APLICACOES_FUNC RAF where B.COD_FAZENDA = A.ID_FAZENDA)+ (Select Coalesce(Sum(RMC.VALOR_TOTAL),0) From RAST_MOV_COLHEITA RMC where C.COD_FAZENDA = A.ID_FAZENDA)+(Select Coalesce(Sum(RMM.VALOR_TOTAL),0) From RAST_MOVIMENTACAO_MAQUINARIO RMM where C.COD_FAZENDA = A.ID_FAZENDA)+(Select Coalesce(Sum(AB.VALOR_TOTAL),0) From ABASTECIMENTO AB where C.COD_FAZENDA = A.ID_FAZENDA) + (Select Coalesce(Sum(ME.VALOR),0) From MANUTENCAO_EQUIPAMENTOS ME where C.COD_FAZENDA = A.ID_FAZENDA)" & _
"+ (Select Coalesce(sum(FP.VALOR_TOTAL),0) From FIN_PAGAMENTOS FP LEFT JOIN FIN_PLANO_CONTAS FPC ON FP.COD_PLANO_CONTAS=FPC.ID_PLANO_CONTAS WHERE FPC.CUSTO='Sim' and B.COD_FAZENDA = A.ID_FAZENDA) AS CUSTO_GERAL , " & _
" (Select Coalesce(Sum(PC.PREVISTO),0) From PLANO_COLHEITA PC where C.COD_FAZENDA = A.ID_FAZENDA) AS PREVISTO," & _
" (Select Coalesce(Sum(PC1.REALIZADO),0) From PLANO_COLHEITA PC1 where C.COD_FAZENDA = A.ID_FAZENDA) AS REALIZADO " & _
"FROM ((CAD_FAZENDA A LEFT JOIN REGISTRO_APLICACOES B ON B.COD_FAZENDA = A.ID_FAZENDA)" & _
"LEFT JOIN RAST_MOVIMENTACAO C ON C.COD_FAZENDA=A.ID_FAZENDA)" & _
"WHERE A.ID_FAZENDA=" & Identificador_fazenda
Agora preciso implementar a seguinte soma
" (Select Coalesce(Sum(CT.AREA),0) From CAD_TALHOES CT where C.COD_FAZENDA = A.ID_FAZENDA) as AREA
porem o campo area é string, tem como fazer algum coisa? eu tentei converte-lo diretamente no banco de dados para double mas da erro mesmo assim
SQL = "SELECT DISTINCT A.ID_FAZENDA, A.NOME_FAZENDA, " & _
" (Select Coalesce(Sum(RAM.VALORT_MAQUINARIOS),0) From REGISTRO_APLICACOES_MAQUINARIO RAM where B.COD_FAZENDA = A.ID_FAZENDA) as VALOR_TOTAL_MAQUINARIOS, " & _
" (Select Coalesce(Sum(RAI.VALOR_TOTAL),0) From REGISTRO_APLICACOES_INSUMO RAI where B.COD_FAZENDA = A.ID_FAZENDA) as VALOR_TOTAL_INSUMOS, " & _
" (Select Coalesce(Sum(RAF.VALORT_FUNCIONARIOS),0) From REGISTRO_APLICACOES_FUNC RAF where B.COD_FAZENDA = A.ID_FAZENDA) as VALOR_TOTAL_FUNCIONARIOS, " & _
" (Select Coalesce(Sum(RMC.VALOR_TOTAL),0) From RAST_MOV_COLHEITA RMC where C.COD_FAZENDA = A.ID_FAZENDA) as COLHEITA_FUNCIONARIOS, " & _
" (Select Coalesce(Sum(RMM.VALOR_TOTAL),0) From RAST_MOVIMENTACAO_MAQUINARIO RMM where C.COD_FAZENDA = A.ID_FAZENDA) as COLHEITA_MAQUINARIOS, " & _
" (Select Coalesce(Sum(AB.VALOR_TOTAL),0) From ABASTECIMENTO AB where C.COD_FAZENDA = A.ID_FAZENDA) as ABASTECIMENTO, " & _
" (Select Coalesce(Sum(ME.VALOR),0) From MANUTENCAO_EQUIPAMENTOS ME where C.COD_FAZENDA = A.ID_FAZENDA) as MANUTENCAO_MAQUINARIOS, " & _
" (Select Coalesce(sum(FP.VALOR_TOTAL),0) From FIN_PAGAMENTOS FP LEFT JOIN FIN_PLANO_CONTAS FPC ON FP.COD_PLANO_CONTAS=FPC.ID_PLANO_CONTAS WHERE FPC.CUSTO='Sim' and B.COD_FAZENDA = A.ID_FAZENDA) as PAGAMENTOS , " & _
" (Select Coalesce(Sum(RAM.VALORT_MAQUINARIOS),0) From REGISTRO_APLICACOES_MAQUINARIO RAM where B.COD_FAZENDA = A.ID_FAZENDA) + (Select Coalesce(Sum(RAI.VALOR_TOTAL),0) From REGISTRO_APLICACOES_INSUMO RAI where B.COD_FAZENDA = A.ID_FAZENDA)+ (Select Coalesce(Sum(RAF.VALORT_FUNCIONARIOS),0) From REGISTRO_APLICACOES_FUNC RAF where B.COD_FAZENDA = A.ID_FAZENDA)+ (Select Coalesce(Sum(RMC.VALOR_TOTAL),0) From RAST_MOV_COLHEITA RMC where C.COD_FAZENDA = A.ID_FAZENDA)+(Select Coalesce(Sum(RMM.VALOR_TOTAL),0) From RAST_MOVIMENTACAO_MAQUINARIO RMM where C.COD_FAZENDA = A.ID_FAZENDA)+(Select Coalesce(Sum(AB.VALOR_TOTAL),0) From ABASTECIMENTO AB where C.COD_FAZENDA = A.ID_FAZENDA) + (Select Coalesce(Sum(ME.VALOR),0) From MANUTENCAO_EQUIPAMENTOS ME where C.COD_FAZENDA = A.ID_FAZENDA)" & _
"+ (Select Coalesce(sum(FP.VALOR_TOTAL),0) From FIN_PAGAMENTOS FP LEFT JOIN FIN_PLANO_CONTAS FPC ON FP.COD_PLANO_CONTAS=FPC.ID_PLANO_CONTAS WHERE FPC.CUSTO='Sim' and B.COD_FAZENDA = A.ID_FAZENDA) AS CUSTO_GERAL , " & _
" (Select Coalesce(Sum(PC.PREVISTO),0) From PLANO_COLHEITA PC where C.COD_FAZENDA = A.ID_FAZENDA) AS PREVISTO," & _
" (Select Coalesce(Sum(PC1.REALIZADO),0) From PLANO_COLHEITA PC1 where C.COD_FAZENDA = A.ID_FAZENDA) AS REALIZADO " & _
"FROM ((CAD_FAZENDA A LEFT JOIN REGISTRO_APLICACOES B ON B.COD_FAZENDA = A.ID_FAZENDA)" & _
"LEFT JOIN RAST_MOVIMENTACAO C ON C.COD_FAZENDA=A.ID_FAZENDA)" & _
"WHERE A.ID_FAZENDA=" & Identificador_fazenda
Agora preciso implementar a seguinte soma
" (Select Coalesce(Sum(CT.AREA),0) From CAD_TALHOES CT where C.COD_FAZENDA = A.ID_FAZENDA) as AREA
porem o campo area é string, tem como fazer algum coisa? eu tentei converte-lo diretamente no banco de dados para double mas da erro mesmo assim
Paulo Henrique
Curtidas 0
Respostas
Wilson Junior
12/04/2010
Sum(cast(CT.AREA AS INTEGER))
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0