Pessoal,
alguém poderia me dar uma dica de como trabalhar com uma unica query ,composta por SELECTS diferentes(mas nas mesma tabela) unidos pelo operador UNION ALL.
tenho um aplicativo que faz um select pegando registros que sejam "debitos" ,depois outro select que pega registros que sejam "credito" ....ambos serão mostrados juntos ,por isso o UNION ALL. Queria saber também como pegar cada valor de cada linha e ir acumulando o valor de saldo pra proxima linha resultante.
Att,
SELECTS com UNION ALL
-
- Rank: Estagiário Sênior
- Mensagens: 8
- Registrado em: Seg, 19 Set 2005 12:40 pm
- Localização: CE
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
O UNION ALL apenas junta dois selects em um só.
Se você colocar apenas UNION (sem o ALL), o Oracle faz um DISTINCT implícito.
É claro que o os 2 ou mais selects que você está "unindo" tem que ter o mesmo número de colunas e também o mesmo tipo!
Veja um exemplo:
Sobre a sua dúvida de pegar um valor ACUMULADO:
* Pode fazer no próprio SQL (veja o link abaixo)
http://www.glufke.net/oracle/viewtopic.php?t=530
* Pode fazer no Reports: Crie um campo "Summary Column" no mesmo grupo que você deseja o valor acumulado...
Escolha a propriedade FUNCTION --> SUM
SOURCE --> Escolha o campo que tem o valor
RESET AT --> Escolha Reports
Feito!!
Se você colocar apenas UNION (sem o ALL), o Oracle faz um DISTINCT implícito.
É claro que o os 2 ou mais selects que você está "unindo" tem que ter o mesmo número de colunas e também o mesmo tipo!
Veja um exemplo:
SQL> SELECT 'BONS' TIPO, ENAME, SAL
2 FROM EMP
3 WHERE SAL > 2000
4 UNION ALL
5 SELECT 'RUINS' TIPO, ENAME, SAL
6 FROM EMP
7 WHERE SAL <=2000
8 /
TIPO ENAME SAL
----- ---------- ----------
BONS JONES 2975
BONS BLAKE 2850
BONS CLARK 2450
BONS SCOTT 3000
BONS KING 5000
BONS FORD 3000
RUINS SMITH 800
RUINS ALLEN 1600
RUINS WARD 1250
RUINS MARTIN 1250
RUINS TURNER 1500
RUINS ADAMS 1100
RUINS JAMES 950
RUINS MILLER 1300
14 rows selected.
SQL>
* Pode fazer no próprio SQL (veja o link abaixo)
http://www.glufke.net/oracle/viewtopic.php?t=530
* Pode fazer no Reports: Crie um campo "Summary Column" no mesmo grupo que você deseja o valor acumulado...
Escolha a propriedade FUNCTION --> SUM
SOURCE --> Escolha o campo que tem o valor
RESET AT --> Escolha Reports
Feito!!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes