[firebase-br] RES: RES: Ajuda com Select

edcley edcley em eletroacre.com.br
Seg Out 9 15:57:39 -03 2006


Cara segue uma procedure selecionável que traz em uma das colunas o valor
acumulado ok


edcley


CREATE PROCEDURE ACUMULADO(
  PARAM1 VARCHAR(20) CHARACTER SET NONE,
  PARAM2 VARCHAR(20) CHARACTER SET NONE,
  DATA_INI DATE,
  DATA_FIM DATE)
RETURNS(
  VALORACUMULADO DOUBLE PRECISION,
  PER_TEC_TOTAIS DOUBLE PRECISION,
  ALIMENTADOR1 VARCHAR(20) CHARACTER SET NONE,
  SUBESTACAO1 VARCHAR(20) CHARACTER SET NONE,
  PER_ENE_FE DOUBLE PRECISION,
  PER_ENE_CU DOUBLE PRECISION,
  PER_PRIM DOUBLE PRECISION,
  PER_SEC DOUBLE PRECISION,
  MES_REF VARCHAR(2) CHARACTER SET NONE,
  ANO_REF VARCHAR(4) CHARACTER SET NONE,
  DATA DATE)
AS
declare variable valor double precision;
BEGIN
  valor = 0;
  for select  "perdas_tecnicas".pe_tec_totais valor,
  "perdas_tecnicas".alimentador,
  "perdas_tecnicas".subestacao,
  "perdas_tecnicas".p_ene_fe_ut,
  "perdas_tecnicas".p_ene_cu_ut,
  "perdas_tecnicas".p_ene_prim,
  "perdas_tecnicas".p_ene_sec,
  "perdas_tecnicas".mes_ref,
  "perdas_tecnicas".ano_ref,
  "perdas_tecnicas".data
    from "perdas_tecnicas"
    where "perdas_tecnicas".data between :DATA_INI and :DATA_FIM and
     "perdas_tecnicas".alimentador = :param1 AND
      "perdas_tecnicas".subestacao = :param2
     order by alimentador
      into :PER_TEC_TOTAIS,
      :alimentador1,
      :subestacao1,
      :PER_ENE_FE,
      :PER_ENE_CU,
      :PER_PRIM,
      :PER_SEC,
      :MES_REF,
      :ANO_REF,
      :data
      do
     begin
      valor = valor +PER_TEC_TOTAIS;
      VALORACUMULADO = VALOR;
     suspend;
     END
    end

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Jeudí Prando Araújo
Enviada em: segunda-feira, 9 de outubro de 2006 13:16
Para: FireBase
Assunto: Re: [firebase-br] RES: Ajuda com Select

outra coisa que você poderia testar é

select
    tb1.id,
    tb1.valor
    -
    coalesce(
             (
              select
                tb2.valor
              from
                tabela tb2
              where
                tb2.id = (
                          select
                            max(id)
                          from
                            tabela tb3
                          where
                          tb3.id < tb1.id
                         )
             ),0
            )
from
  tabela tb1


2006/10/9, Jeudí Prando Araújo <jeudiprando em gmail.com>:
> select
> tb1.id, tb1.valor - (select tb2.valor from tabela tb2 where tb2.id =
tb1-1)
> from tabela tb1
>
> isso irá funcionar se o seu ID não tiver buracos... tipo:
1,2,3,4,8,10,15,90
> provenientes de auto incremento de generator
>
> Em 09/10/06, edcley<edcley em eletroacre.com.br> escreveu:
> > Cara com select não dá
> > Vc tem que fazer uma procedure selecionável
> > Ok, e trabalhar com variáveis de forma que vc consiga esse tipo de
select
> >
> > Posso te mandar um modelo que fiz se desejar
> >
> > edcley
> >
> > -----Mensagem original-----
> > De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
Em
> > nome de Fernando Reis Guimarães
> > Enviada em: segunda-feira, 9 de outubro de 2006 11:40
> > Para: FireBase
> > Assunto: Re: [firebase-br] Ajuda com Select
> >
> > Aproveitando o embalo alguem ja fez um select que da a diferença de um
capo
> > integer entre o registro atual e o anterior?
> > Exemplo:
> >
> > id            valor
> > 1              10
> > 2              20
> > 3              50
> >
> > o select retornaria
> >
> > id           diff
> > 1            0
> > 2            10-
> > 3            30
> >
> > Alguem ja fez isso?
> > Eu fiz uma procedure para fazer isso, mas se tiver algo em select
ficaria
> > melhor.
> >
> > Em 09/10/06, Henrique Netzka (Vetor Sistemas)
> > <henrique em vetorsistemas.com.br>
> > escreveu:
> > >
> > > Alberto,
> > >
> > > A pergunta ficou meio confusa, mas se eu entendi direito, você pode
usar
> > > COUNT, SUM e GROUP BY! Por exemplo:
> > >
> > > SELECT
> > >   Codigo,
> > >   Descricao,
> > >   COUNT(Codigo),
> > >   SUM(Quantidade),
> > >   Data
> > > FROM
> > >   Artigos
> > > GROUP BY
> > >   Codigo,
> > >   Descricao,
> > >   Data
> > >
> > > O select vai te retornar uma linha por data, e a coluna COUNT vai te
dar
> > > quantos registros ele agrupou ao somar as quantidades (coluna SUM).
> > >
> > > Abraços,
> > > Henrique
> > >
> > > ----- Original Message -----
> > > From: "Alberto Brito" <comercial em abritolda.com>
> > > To: <lista em firebase.com.br>
> > > Sent: Monday, October 09, 2006 11:24 AM
> > > Subject: [firebase-br] Ajuda com Select
> > >
> > >
> > > ola pessoal
> > >
> > >
> > > Queria pedir a vossa ajuda coom um slect, para ver se sera possivel
> > >
> > > tenho a seguinte tabela
> > >   Artigos
> > >     codigo | descriçao | Quantidade | Data
> > >          --------------------------------------
> > >    1 Artigo 1      10   01-01-2006
> > >             1 Artigo 1      15   01-01-2006
> > >             1 Artigo 1      15         02-01-2006
> > >    1     Artigo 1      20   03-01-2006
> > >
> > >
> > > O que eu pretendia era fazer um select que me apresente um resultado
da
> > > seguinte maneira
> > >
> > > codigo | descriçao     | Quantidade | Data
> > >          --------------------------------------
> > >   Saldo Anterior       25         01-01-2006
> > >             1 Artigo 1            15         02-01-2006
> > >    1     Artigo 1            20         03-01-2006
> > >
> > > É possivel fazer um select deste genero?
> > >
> > >   Desde ja obrigado
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para editar sua configuração na lista, use o endereço
> > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para editar sua configuração na lista, use o endereço
> > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> >
> >
> >
> > --
> > Atenciosamente;
> > Fernando.
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> > --
> > No virus found in this incoming message.
> > Checked by AVG Free Edition.
> > Version: 7.1.407 / Virus Database: 268.13.1/466 - Release Date:
7/10/2006
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
>
> --
>
> ------------------------------------------------------
> Jeudí Prando Araújo
> j-araujo em vwmsistemas.com.br
> Programador
> VWM Sistemas LTDA
> www.vwmsistemas.com.br
>
> Trabalho: (27) 3268.2549
> Celular: (27) 9251.3447
>


-- 

------------------------------------------------------
Jeudí Prando Araújo
j-araujo em vwmsistemas.com.br
Programador
VWM Sistemas LTDA
www.vwmsistemas.com.br

Trabalho: (27) 3268.2549
Celular: (27) 9251.3447

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.407 / Virus Database: 268.13.1/466 - Release Date: 7/10/2006





Mais detalhes sobre a lista de discussão lista