Fórum Select dentro outro Select??? #181809
12/09/2003
0
Tenho uma tabela Contacorrente em Ib6;
preciso fazer um select mas ou meno assim:
Select SUM(contacorrente.cc_debito) as sldoMat
from Contacorrente
where contacorrente.cc_nome=´material consumo´
até ai tudo bem, só que o CC_Nome tem varias descrição que preciso tipo:´Material consumo´, ´Diarias´ entre outras.
e preciso criar esse campo SUM com nome diferente para cada Select
Ex. SldoMat o outro SldoDiaris etc..
É possivel fazer um select dentro do outro na mesma tabela que me retorne vários campos SUM(diferentes)?
pode me passar um exemplo?
grato!
preciso fazer um select mas ou meno assim:
Select SUM(contacorrente.cc_debito) as sldoMat
from Contacorrente
where contacorrente.cc_nome=´material consumo´
até ai tudo bem, só que o CC_Nome tem varias descrição que preciso tipo:´Material consumo´, ´Diarias´ entre outras.
e preciso criar esse campo SUM com nome diferente para cada Select
Ex. SldoMat o outro SldoDiaris etc..
É possivel fazer um select dentro do outro na mesma tabela que me retorne vários campos SUM(diferentes)?
pode me passar um exemplo?
grato!
Anselmo
Curtir tópico
+ 0
Responder
Posts
12/09/2003
Jairroberto
Olá, Anselmo!
Você poderia fazer um UNION SELECT, mas nesse caso acho muito mais fácil usar o GROUP BY, que retornará um registro com o somatório do ´cc_debito´ para cada ´cc_nome´. Veja um exemplo:
Um abraço,
Jair
Você poderia fazer um UNION SELECT, mas nesse caso acho muito mais fácil usar o GROUP BY, que retornará um registro com o somatório do ´cc_debito´ para cada ´cc_nome´. Veja um exemplo:
SELECT contacorrente.cc_nome, SUM(contacorrente.cc_debito) as Saldo FROM ContaCorrente GROUP BY contacorrente.cc_nome
Um abraço,
Jair
Responder
Gostei + 0
12/09/2003
Jairroberto
Ola Jair Roberto!
bom agradeço sua colaboração, mas na verdade o que eu preciso nuam resolveria assim.
preciso de atributos saldo com nomes difirentes:
Ex:Saldomat, saldodiarias, saldoserviços etc.
e nesse caso o atributo é saldo com varias linhas. tentei tambem com UNION mas dá na mesma me retorna um atributo só com varias linhas.
Será que é possivel fazer algo que me retorna varios atributos?
grato!
Eurides
Olá, Eurides!
Como você está usando IB6, é possível criar uma ´Select Stored Procedure´ (Stored Procedure Selecionável). O Interbase/Firebird é o único SGDB que eu conheço com esta capacidade. A edição 39 da revista Clube Delphi tem uma matéria excelente do Cantu sobre a criação de Stored Procedures e Triggers no IB/FB. Vou tentar fazer um exemplo:
CREATE PROCEDURE SP_TESTE RETURNS ( SALDO_MATERIAIS NUMERIC(9,2), SALDO_DIARIAS NUMERIC(9,2), SALDO_OUTRAS NUMERIC(9,2)) AS BEGIN /* Calcula o Saldo de Materiais e joga o valor na variável de retorno */ SELECT SUM(cc_debito) FROM ContaCorrente WHERE cc_nome=´material consumo´ INTO :SALDO_MATERIAIS; /* Calcula o Saldo de Diárias e joga o valor na variável de retorno */ SELECT SUM(cc_debito) FROM ContaCorrente WHERE cc_nome=´diarias´ INTO :SALDO_DIARIAS; /* Calcula o Saldo de Outras e joga o valor na variável de retorno */ SELECT SUM(cc_debito) FROM ContaCorrente WHERE (cc_nome<>´material consumo´) AND (cc_nome<>´diarias´) INTO :SALDO_OUTRAS; SUSPEND; END ^
Para chamar a Stored Procedure é só usar a seguinte cláusula SQL:
SELECT * FROM SP_TESTE
Um abraço,
Jair
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)