Re: Re: [firebase-br] Dificuldade com Query - Ninguém pode me Ajudar ?
Josauro S.J.
josauro em casasoft.inf.br
Ter Dez 21 17:50:25 -03 2004
Tudo bem veja a procedure que te mandei para mim ela funciona ...
Josauro S.J.
Diretor
josauro em casasoft.inf.br
----- Original Message -----
From: Ronaldo Cocuroci
To: lista em firebase.com.br
Sent: Tuesday, December 21, 2004 5:35 PM
Subject: Res: Re: [firebase-br] Dificuldade com Query - Ninguém pode me Ajudar ?
Josauro,
Meu problema não é a mascará da conta e sim o relacionamento de duas tabelas
uma com o plano de contas completo e outra com as contas aprovadas por
financiamento. A questão dos níveis é variável entre 2 e 5 níveis,
dependendo do orçamento em questão, eu não preciso mais do que isso.
Abraços,
Ronaldo Cocuroci
-------Mensagem original-------
De: FireBase
Data: 12/21/04 16:30:45
Para: Josauro S.J.; FireBase
Assunto: Re: [firebase-br] Dificuldade com Query - Ninguém pode me Ajudar ?
Veja um modelo do que uso, mas so uso uma conta com qualquer numero de
niveis, 1.1.01.01.001
o resulta do é
1 110.000,00 100.000,00
1.1 70.000,00 70.000,00
1.1.01 50.000,00 20.000,00
1.1.01.001 10.000,00 10.000,00
1.1.01.002 40.000,00 10.000,00
1.1.02 20.000,00 50.000,00
1.1.02.001 5.000,00 5.000,00
1.1.02.002 15.000,00 45.000,00
1.2 40.000,00 30.000,00
.
CREATE PROCEDURE GET_BALANCO_CONTAS (
CONTA_INICIAL VARCHAR(13),
CONTA_FINAL VARCHAR(13),
DATA_INICIAL DATE,
DATA_FINAL DATE,
)
RETURNS (
TOTAL_CREDITO NUMERIC(18,2),
TOTAL_DEBITO NUMERIC(18,2),
TOTAL NUMERIC(18,2),
SINTETICO_ANALITICO CHAR(1),
TITULO VARCHAR(40),
CONTA VARCHAR(13))
AS
DECLARE VARIABLE OPERACAO SMALLINT;
DECLARE VARIABLE VALOR NUMERIC(18,2);
DECLARE VARIABLE CONTA_CLASSE VARCHAR(13);
begin
/* Procedure Text */
FOR
select c.cla_conta,
c.cla_titulo,
c.cla_sintetico_analitico,
c.cla_codigo
from PLANO_CONTA c
where (c.cla_conta >= :CONTA_INICIAL AND
c.cla_conta <= :CONTA_FINAL) OR
(:CONTA_INICIAL = '' AND
:CONTA_FINAL = '')
order by c.cla_conta
INTO :CONTA,:TITULO,:SINTETICO_ANALITICO,:CLA_CODIGO
DO BEGIN
TOTAL = 0;
TOTAL_DEBITO = 0;
TOTAL_CREDITO = 0;
if (SINTETICO_ANALITICO = 'A')
then BEGIN
FOR
SELECT L.LCS_VALOR,
L.LCS_OPERACAO,
L.lcs_MOVIMENTO_VALOR,
L.lcs_LANCAMENTO
FROM VW_lancamento_CONTAS L
WHERE L.CLASSE LIKE (:CONTA||'%') and
((L.classe >= :CONTA_INICIAL AND
L.classe <= :CONTA_FINAL) OR
(:CONTA_INICIAL = '' AND
:CONTA_FINAL = ''))
INTO VALOR, :OPERACAO
DO BEGIN
TOTAL = TOTAL + (VALOR*OPERACAO);
if (OPERACAO = -1)
then TOTAL_DEBITO = TOTAL_DEBITO + (VALOR*OPERACAO);
ELSE
if (OPERACAO = 1)
then TOTAL_CREDITO = TOTAL_CREDITO + (VALOR*OPERACAO);
END
END
ELSE BEGIN
FOR
SELECT LCS_VALOR, LCS_OPERACAO, LCS_MOVIMENTO_VALOR, LCS_CLASSE,
LCS_LANCAMENTO
FROM lancamento_CONTAS
WHERE LCS_CLASSE = :CLA_CODIGO
INTO :VALOR,:OPERACAO
DO BEGIN
TOTAL = TOTAL + (OPERACAO*VALOR);
if (OPERACAO = -1)
then TOTAL_DEBITO = TOTAL_DEBITO + (OPERACAO*VALOR);
ELSE
if (OPERACAO = 1)
then TOTAL_CREDITO = TOTAL_CREDITO + (OPERACAO*VALOR);
END
END
if ((TOTAL <> 0) OR
(TOTAL_DEBITO <> 0) OR
(TOTAL_CREDITO <> 0))
then suspend;
END
end
Josauro S.J.
Diretor
josauro em casasoft.inf.br
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuragco na lista, use o enderego http://mail.firebase
com.br/mailman/listinfo/lista_firebase.com.br
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Mais detalhes sobre a lista de discussão lista