Fórum Campo agregado na mesma query #354747
04/03/2008
0
Observe que o campo SOMA em vermelho, é um agregado de uma subquery. A pergunta e: Tem como fazer algo semelhante? Pois do jeito que está não é possível. Esta query é hipotética, logo falta Group By e etc... É só para exemplificar o que eu quero.
Paulo
Curtir tópico
+ 0Posts
04/03/2008
Paulo_amorim
Se entendi certo, o que vc chama de SOMA é uma tabela, mas o que vc quer é o resultado do SUM(B.CAMPO2* 2), não?
Não testei, mas se é assim pode-se tentar fazer:
SELECT A.campo1, SUM(C.CAMPO1*parcial) AS total FROM A,C,(SELECT SUM(B.CAMPO2*2) AS parcial FROM B, A WHERE B.CH1 = A.CH1) SOMA WHERE C.CH1 = A.CH1
Espero que ajude
Até+
Gostei + 0
04/03/2008
Paulo
Essa query funciona. Na tabela tenho 4 registros para testes, sendo um deles B2 e CFOP 6102. Desta forma funciona, mas se eu colocara mas um pedaço de query em baixo, vem vazio. Eu não possuo registro do E2, mas não deveria vir somente os D2 e B2? O código abaixo vem vazio e em vermelho está o acrescentado:
Gostei + 0
04/03/2008
Hall 9000
SELECT A.CAMPO1,(SELECT SUM(B.CAMPO2*2) FROM TB1 B WHERE B.CH1 = A.CH1)SOMA,(SELECT SUM(C.CAMPO1*SOMA) FROM TB1 C
WHERE C.CH1 = A.CH1) FROM TB1 A
se entendi seu selecy ficaria assim:
SELECT A.CAMPO1,((SELECT SUM(B.CAMPO2*2) FROM TB1 B WHERE B.CH1 = A.CH1) + (SELECT SUM(C.CAMPO1*SOMA) FROM TB1 C
WHERE C.CH1 = A.CH1)) FROM TB1 A
Fiz uma simulação numa tabela de um banco(Firebird) meu e rodou.
Espero que funcione.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)