SQL múltiplos

luis em bmsoft.com.br luis em bmsoft.com.br
Seg Jun 15 11:44:49 -03 2009


Pessoal,

Só lembrando que este código SQL está em um relatório feito no gerador de 
relatórios especial para o cliente, então ficaria difícil usar SP.

Neste caso, selecionei os dados e mandei imprimir... sem ter que fazer nada 
na programação.

Luis.

<luis em bmsoft.com.br> escreveu na mensagem 
news:h13cgj$ifr$1 em ger.gmane.org...
> Pessoal,
>
> Mais uma...
>
> Eu usava o DBisam... um "banco de dados" pequeno que aguenta bem as minhas 
> tabelas...
> Eu tenho muitos SQLs com 2 linhas de comando usando tabelas temporárias, e 
> para fazer isso eu usava vários comandos SQL em uma mesma query separados 
> por ponto e vírgula, que passava para o banco... para exemplificar...
>
> Neste SQL eu pego todos os registros que estão em aberto no contas a 
> receber antes de uma determinada data e coloco numa tabela temporária... 
> depois eu pego todos os registros da tabela entre 2 datas (recebidos e em 
> aberto) e coloco em outra tabela temporária... depois eu faço orders, etc.
>
> Pergunta: Dá pra fazer algo parecido do Firebird??
>
> Ai vai o SQL:
>
> /* --- INICIO --- */
> select
> a.doc_num,
> a.doc_serie,
> a.vencimento,
> b.nome,
> substring( cast( f.dados_adicionais as varchar(40)),1,40) programa,
> a.valor,
> c.data_recto,
> c.valor_recto,
> d.apelido banco,
> e.apelido corretor,
> a.status,
> extract(year from vencimento) ano,
> extract(month from vencimento) mes
>
> into "memory\t1"
> from dprprincipal a
>
> left join clientesprincipal b on b.id = a.id_cliente
> left outer join dprbaixas c on c.id_dp = a.id
> left outer join bancos d on d.id = a.id_banco
> left outer join vendedores e on e.id = a.id_vendedor
> left outer join nfmestre f on f.id = a.id_nf
> where (vencimento >= '2000-01-01') and (vencimento < '2009-06-01') and 
> a.status='A'
> order by vencimento
> ;
> /* Formatar programa... */
> update "memory\t1" set programa = substring(programa,pos('P=',programa),5)
> ;
> update "memory\t1" set programa = '' where pos('P=',programa)=0
> ;
>
> select
> a.doc_num,
> a.doc_serie,
> a.vencimento,
> b.nome,
> substring( cast( f.dados_adicionais as varchar(40)),1,40) programa,
> a.valor,
> c.data_recto,
> c.valor_recto,
> d.apelido banco,
> e.apelido corretor,
> a.status,
> extract(year from vencimento) ano,
> extract(month from vencimento) mes
>
> into "memory\t2"
> from dprprincipal a
>
> left join clientesprincipal b on b.id = a.id_cliente
> left outer join dprbaixas c on c.id_dp = a.id
> left outer join bancos d on d.id = a.id_banco
> left outer join vendedores e on e.id = a.id_vendedor
> left outer join nfmestre f on f.id = a.id_nf
> where (vencimento >= '2009-06-01') and (vencimento <= '2009-06-30')
> order by vencimento
> ;
> /* Formatar programa... */
> update "memory\t1" set programa = substring(programa,pos('P=',programa),5)
> ;
> update "memory\t1" set programa = '' where pos('P=',programa)=0
> ;
>
> insert into "memory\t2" select * from "memory\t1" order by 
> mes,ano,vencimento
> ;
>
> select * from "memory\t2"
>
> /* --- FIM --- */
>
> -- 
> _________________________________________
> BMSOFT - SERVIÇOS DE INFORMÁTICA LTDA.
> Luis C. de Azevedo
> Analista de Sistemas
> (47)8848-9722
>
>
>
>


--------------------------------------------------------------------------------


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 







Mais detalhes sobre a lista de discussão lista