manobr 0 Denunciar post Postado Setembro 11, 2008 Boa tarde, estou precisando fazer algo parecido com isso que consegui em Oracle: WITH minha_tabela AS (SELECT 1 doc, 'alguma coisa' historico, 5 debito, 0 credito from dual UNION ALL SELECT 2 doc, 'alguma coisa' historico, 5 debito, 0 credito from dual UNION ALL SELECT 3 doc, 'alguma coisa' historico, 0 debito, 8 credito from dual UNION ALL SELECT 4 doc, 'alguma coisa' historico, 0 debito, 15 credito FROM dual) -- END OF TEST DATA SETUP **** NOW TO THE QUERY WE'RE INTERESTED IN: SELECT doc, historico, debito, credito, Sum(debito - credito) over (order by doc) saldo FROM minha_tabela; Este sql gera um saldo para 1ª linha, depois soma com o resultado da 2ª linha para outro saldo e assim por diante. Mas essa sintaxe é apenas para Oracle, alguém sabe uma forma de fazer em MySQL? Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme Ribeiro 1 Denunciar post Postado Setembro 11, 2008 Eu faria assim: SELECT 1 doc, 'alguma coisa' historico, 5 debito, 0 credito from dual UNION ALL SELECT 2 doc, 'alguma coisa' historico, 5 debito, 0 credito from dual UNION ALL SELECT 3 doc, 'alguma coisa' historico, 0 debito, 8 credito from dual UNION ALL SELECT 4 doc, 'alguma coisa' historico, 0 debito, 15 credito FROM dual SELECT doc, historico, debito, credito, Sum(debito - credito) over (order by doc) saldo FROM (SELECT 1 doc, 'alguma coisa' historico, 5 debito, 0 credito from dual UNION ALL SELECT 2 doc, 'alguma coisa' historico, 5 debito, 0 credito from dual UNION ALL SELECT 3 doc, 'alguma coisa' historico, 0 debito, 8 credito from dual UNION ALL SELECT 4 doc, 'alguma coisa' historico, 0 debito, 15 credito FROM dual) Com subquery. No mysql você também pode trabalhar com union all, mas acho que desse jeito já te ajuda.. Abraços Compartilhar este post Link para o post Compartilhar em outros sites