Leo Feijo 5 Denunciar post Postado Dezembro 3, 2015 Pessoal, eu estou com um problema esquisito... Quando eu utilizo: SELECT SUM(`valorNfe`) FROM `SIGET-SAIDA`; O valor retorna corretamente... mais ou menos 2 milhões SELECT SUM(`valorNfe`) FROM `SIGET-ENTRADA`; O valor também retorna corretamente... mais ou menos 1 milhão Porém, quando faço a soma, usando o seguinte select o valor fica muito acima do esperado... SELECT SUM(`SIGET-SAIDA`.`valorNfe`) + SUM(`SIGET-ENTRADA`.`valorNfe`) FROM `SIGET-ENTRADA`, `SIGET-SAIDA`; O select retorna 1,5 bilhões Por que será? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Dezembro 3, 2015 creio que o correto seria SELECT SUM(`SIGET-SAIDA`.`valorNfe` + SIGET-ENTRADA`.`valorNfe`) FROM `SIGET-ENTRADA`, `SIGET-SAIDA`; Compartilhar este post Link para o post Compartilhar em outros sites
Leo Feijo 5 Denunciar post Postado Dezembro 3, 2015 Grande Motta, muito obrigado pela resposta. Desse jeito que você sugere eu também havia tentado, e conferi novamente e retornou 1,5 bilhão. Eu consegui resolver vendo um outro post que você fez algum tempo atrás. Ficou assim: SELECT SUM(x) totalFROM ( SELECT SUM(`SIGET-SAIDA`.`valorNfe`) x FROM `SIGET-SAIDA` UNION SELECT SUM(`SIGET-ENTRADA`.`valorNfe`) FROM `SIGET-ENTRADA` ) sub Mas apenas para fins didáticos eu queria saber qual seria a sintaxe correta para utilização do operador de adição nesse caso do sum() Seus posts tem me ajudado bastante no aprendizado do SQL. Muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Dezembro 4, 2015 Depois entendi o problema , ao fazer : FROM `SIGET-ENTRADA`, `SIGET-SAIDA`; você está fazendo um produto cartesiano , todas as linhas de uma tabela contra todas as linhas da outra por isto o valor absurdo. No sql do post #3 isto não ocorre Compartilhar este post Link para o post Compartilhar em outros sites
Leo Feijo 5 Denunciar post Postado Dezembro 4, 2015 . Depois entendi o problema , ao fazer : FROM `SIGET-ENTRADA`, `SIGET-SAIDA`; você está fazendo um produto cartesiano , todas as linhas de uma tabela contra todas as linhas da outra por isto o valor absurdo. No sql do post #3 isto não ocorre É isso, muito obrigado pela ajuda Motta! :D Compartilhar este post Link para o post Compartilhar em outros sites