Cursor FireBird
Alguem pode informar como posso ver o proximo registro em um cursor (For Select), pois no SQL SERVER uso o FETCH com uma variavel e posso comparar o registro atual com o anterior.
Exemplo SQL SERVER:
while (@@fetch_status = 0)
begin
set @codigo2 = @codigo
set @nome2 = @nome
fetch cursorX into @codigo, @nome
If @codigo2 = @codigo then -- confere codigo atual com anterior
insert into #TempConttribuintes values(@codigo2,@nome2,@codigo)
end
Exemplo SQL SERVER:
while (@@fetch_status = 0)
begin
set @codigo2 = @codigo
set @nome2 = @nome
fetch cursorX into @codigo, @nome
If @codigo2 = @codigo then -- confere codigo atual com anterior
insert into #TempConttribuintes values(@codigo2,@nome2,@codigo)
end
Paeslopes
Curtidas 0
Respostas
Emerson Nascimento
30/06/2006
tente assim:
for select codigo, nome from tabela [where ] into :codigo, :nome do begin if (codigo2 = codigo) then -- confere codigo atual com anterior insert into tabelatemp values(:codigo2,:nome2,:codigo); codigo2 = codigo; nome2 = nome; end
GOSTEI 0
Paeslopes
30/06/2006
Caro amigo não funciona, pq na hora do insert o codigo atual existe e o anterior como vai ser inserido?
Analise o seu SQL e veja se vai funcionar.
O Meu resultado em SQL_Sever é assim:
Tabela: Processo
n_processo - Data_entrada - Setor - Requerente
01 - 01/01/2006 - Contabilidade - João
01 - 05/01/2006 - RH - Maria
02 - 03/01/2006 - FINANCAS - CARLOS
02 - 05/01/2006 - CPD - TT
03 - 02/01/2006 - PROTOCOLO - PETER
05 - 01/01/2006 - RH - MBOB
05 - 08/01/2006 - INFORMATICA - ZÉ
Resultado com cursor em sql-server
n_processo - Data_entrada - Dt_Saida - Dias_Proc_Setor
01 - 01/01/2006 - 05/01/2006 - 04
02 - 03/01/2006 - 05/01/2006 - 02
03 - 02/01/2006 - null - Processo no Setor
05 - 01/01/2006 - 08/01/2006 - 07
Obrigado.
Analise o seu SQL e veja se vai funcionar.
O Meu resultado em SQL_Sever é assim:
Tabela: Processo
n_processo - Data_entrada - Setor - Requerente
01 - 01/01/2006 - Contabilidade - João
01 - 05/01/2006 - RH - Maria
02 - 03/01/2006 - FINANCAS - CARLOS
02 - 05/01/2006 - CPD - TT
03 - 02/01/2006 - PROTOCOLO - PETER
05 - 01/01/2006 - RH - MBOB
05 - 08/01/2006 - INFORMATICA - ZÉ
Resultado com cursor em sql-server
n_processo - Data_entrada - Dt_Saida - Dias_Proc_Setor
01 - 01/01/2006 - 05/01/2006 - 04
02 - 03/01/2006 - 05/01/2006 - 02
03 - 02/01/2006 - null - Processo no Setor
05 - 01/01/2006 - 08/01/2006 - 07
Obrigado.
GOSTEI 0
Emerson Nascimento
30/06/2006
não seria mais fácil fazer uma instrução simples para isso?
select codigo, min(data) entrada, max(data) saida, max(data) - min(data) intervalo from tabela group by codigo
GOSTEI 0