RES: [firebase-br] Ajuda em SQL "Obrigado"

Jony jonyridel em yahoo.com.br
Ter Ago 2 09:13:32 -03 2005


Carlos tente fazer uma procedure selecionavel.
Acredito que os dados que estão dentro do in vem de uma tabela.
Se for isso faça uma procedure onde vc va varrendo a tabela com os dados do
in retornando os dados das consultas tipo:

SET TERM ^ ;
CREATE PROCEDURE PCONSULTAS (
    PI_DATA_I DATE,
    PI_DATA_F DATE)
RETURNS (
Po_ID integer, 
Po_IDPaciente integer,
Po_IDMedico integer,
Po_Data Date,
Po_IDConvenio integer
AS
BEGIN
  EXIT;
END^
SET TERM ; ^

SET TERM ^ ;

ALTER PROCEDURE PCONSULTAS (
    PI_DATA_I DATE,
    PI_DATA_F DATE)
RETURNS (
Po_ID integer, 
Po_IDPaciente integer,
Po_IDMedico integer,
Po_Data Date,
Po_IDConvenio integer
AS
BEGIN

   FOR SELECT ID_CONVENIO FROM CONVENIOS INTO :PO_IDCONVENIO DO
   BEGIN
     FOR Select wID, wIDPaciente, wIDMedico, wData 
         from     
            ConsultaMedica 
         where 
            wData between :PI_DATA_I  and PI_DATA_F 
         and widconvenio = :PO_IDCONVENIO INTO
           Po_ID,
           Po_IDPaciente,
           Po_IDMedico,
           Po_Data DO
         SUSPEND;
     END
   END  
END^

Para utilizar use : Select * from PCONSULTAS('01.01.2004', ' 01.01.2007')

Espero ter ajudado,

----------------------------
Jony Ridel 
Grupo Êxito - Salvador - BA
----------------------------

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Carlos Alberto dos santos
Enviada em: segunda-feira, 1 de agosto de 2005 17:56
Para: lista em firebase.com.br
Assunto: [firebase-br] Ajuda em SQL "Obrigado" 

Olá amigos tenho que fazer uma pesquisa no banco onde envio esse sql:

Select wID, wIDPaciente, wIDMedico, wData, wIDConvenio from ConsultaMedica 
where wData between '01.01.2004'  and ' 01.01.2007' and
widconvenio in 
(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,80,90,50,60,100,200,7000); => dentro do

in(tem mais de 1500 codigos). Eu acho que não é a melhor forma.

Alguem saberia um jeito melhor de fazer isso? já tentei com o filter do 
clientdaset mais não obtive sucesso o problema é que quando coloco no filter

clientdataset.filter := 'widconvenio 
in(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,80,90,50,60,100,200,7000) gera erro. 
só consigo com um valor. Se alguém poder me ajudar agradeço.

_________________________________________________________________
Chegou o que faltava: MSN Acesso Grátis. Instale Já! 
http://www.msn.com.br/discador


______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 28/7/2005
 

-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.8/61 - Release Date: 1/8/2005
 


	
	
		
_______________________________________________________ 
Yahoo! Acesso Grátis - Internet rápida e grátis. 
Instale o discador agora! http://br.acesso.yahoo.com/





Mais detalhes sobre a lista de discussão lista