Fórum Somando com SQL #465122
27/12/2013
0
1 Código Valor1 data1 valor2 data2 valor3 data3 ...
1 99,00 01/01/13 95,00 01/02/13 90,01 01/03/13 ...
preciso soma essas colunas no sql como posso fazer isso
Eduardo Mendonça
Curtir tópico
+ 0Posts
28/12/2013
Marcos Saffran
select *, (valor1 + valor2 + ...) as soma from tabela;
Gostei + 0
28/12/2013
Eduardo Mendonça
SELECT
(((T1.VALOR_VENCIMENTO1 + T1.VALOR_JUROS1) - T1.VALOR_DESCONTO1) + ((T1.VALOR_VENCIMENTO2 + T1.VALOR_JUROS2) - T1.VALOR_DESCONTO2) + ((T1.VALOR_VENCIMENTO3 + T1.VALOR_JUROS3) - T1.VALOR_DESCONTO3) + ((T1.VALOR_VENCIMENTO4 + T1.VALOR_JUROS4) - T1.VALOR_DESCONTO4) + ((T1.VALOR_VENCIMENTO5 + T1.VALOR_JUROS5) - T1.VALOR_DESCONTO5) + ((T1.VALOR_VENCIMENTO6 + T1.VALOR_JUROS6) - T1.VALOR_DESCONTO6) +((T1.VALOR_VENCIMENTO7 + T1.VALOR_JUROS7) - T1.VALOR_DESCONTO7) + ((T1.VALOR_VENCIMENTO8 + T1.VALOR_JUROS8) - T1.VALOR_DESCONTO8) + ((T1.VALOR_VENCIMENTO9 + T1.VALOR_JUROS9) - T1.VALOR_DESCONTO9) + ((T1.VALOR_VENCIMENTO10 + T1.VALOR_JUROS10) - T1.VALOR_DESCONTO10) + ((T1.VALOR_VENCIMENTO11 + T1.VALOR_JUROS11) - T1.VALOR_DESCONTO11) + ((T1.VALOR_VENCIMENTO12 + T1.VALOR_JUROS12) - T1.VALOR_DESCONTO12))As SOMA,
T1.CODIGO_MOVIMENTACAO,
T1.VALOR_NOTA,
T1.DATA_EMISSAO,
T1.VALOR_VENCIMENTO1,
T1.DATA_VENCIMENTO1,
T1.VALOR_PAGAMENTO1,
T1.DATA_PAGAMENTO1,
T1.VALOR_JUROS1,
T1.VALOR_DESCONTO1,
T2.NOME_FORNECEDOR
FROM
CONTAS_PAGAR T1,
FORNECEDORES T2
WHERE
T1.FORNECEDOR = T2.NOME_FORNECEDOR
AND
(SOMA>0 AND SOMA<T1.VALOR_NOTA)
Gostei + 0
28/12/2013
Marcos Saffran
os 'alias' não funcionam na clausula 'where', apenas em 'group by', 'order by' e 'having'.
SELECT
(((T1.VALOR_VENCIMENTO1 + T1.VALOR_JUROS1) - T1.VALOR_DESCONTO1) + ((T1.VALOR_VENCIMENTO2 + T1.VALOR_JUROS2) - T1.VALOR_DESCONTO2) + ((T1.VALOR_VENCIMENTO3 + T1.VALOR_JUROS3) - T1.VALOR_DESCONTO3) + ((T1.VALOR_VENCIMENTO4 + T1.VALOR_JUROS4) - T1.VALOR_DESCONTO4) + ((T1.VALOR_VENCIMENTO5 + T1.VALOR_JUROS5) - T1.VALOR_DESCONTO5) + ((T1.VALOR_VENCIMENTO6 + T1.VALOR_JUROS6) - T1.VALOR_DESCONTO6) +((T1.VALOR_VENCIMENTO7 + T1.VALOR_JUROS7) - T1.VALOR_DESCONTO7) + ((T1.VALOR_VENCIMENTO8 + T1.VALOR_JUROS8) - T1.VALOR_DESCONTO8) + ((T1.VALOR_VENCIMENTO9 + T1.VALOR_JUROS9) - T1.VALOR_DESCONTO9) + ((T1.VALOR_VENCIMENTO10 + T1.VALOR_JUROS10) - T1.VALOR_DESCONTO10) + ((T1.VALOR_VENCIMENTO11 + T1.VALOR_JUROS11) - T1.VALOR_DESCONTO11) + ((T1.VALOR_VENCIMENTO12 + T1.VALOR_JUROS12) - T1.VALOR_DESCONTO12))As SOMA,
T1.CODIGO_MOVIMENTACAO,
T1.VALOR_NOTA,
T1.DATA_EMISSAO,
T1.VALOR_VENCIMENTO1,
T1.DATA_VENCIMENTO1,
T1.VALOR_PAGAMENTO1,
T1.DATA_PAGAMENTO1,
T1.VALOR_JUROS1,
T1.VALOR_DESCONTO1,
T2.NOME_FORNECEDOR
FROM
CONTAS_PAGAR T1,
FORNECEDORES T2
WHERE
T1.FORNECEDOR = T2.NOME_FORNECEDOR
HAVING
(SOMA>0 AND SOMA<=T1.VALOR_NOTA)
Gostei + 0
30/12/2013
Eduardo Mendonça
Invalid token. Dynamic SQL Error. SQL error code = -104. Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
sera que tem jeito para isso?
Gostei + 0
30/12/2013
Marcos Saffran
Eu testei com a 5.6
Gostei + 0
30/12/2013
Eduardo Mendonça
não sei dizer a ver. do SQL
Gostei + 0
30/12/2013
Marcos Saffran
tente a alteração abaixo:
WHERE
T1.FORNECEDOR = T2.NOME_FORNECEDOR
GROUP BY
T1.FORNECEDOR
HAVING
(SOMA>0 AND SOMA<=T1.VALOR_NOTA)caso não funcione recomendo ir testando o comando por partes, de preferência em um editor de comandos, até identificar onde está o erro.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)