Hej Jens - Det er korrekt forstået 22 er fremmednøgle til record 22. Resultatet må gerne være noget lignende det jeg viste ovenfor. Noget med at hver gren stopper ved en nullet SubID.
Nu er jeg ikke den vildeste hest på marken, men prøv det her :
Declare @external_loop int Declare @ref_id int Declare @old_ref_id int Declare @referencel_loop int
Declare #large_cur cursor for Select id, subid from HEST (nolock) Open #large_cur
Fetch next from #large_cur into @referencel_loop, @external_loop
Set @ref_id = @external_loop
While @@fetch_status = 0 Begin While IsNull(@ref_id, -1) <> -1 Begin Set @old_ref_id = @ref_id Select @ref_id = subid from HEST (nolock) where id = @ref_id Print convert(varchar, @old_ref_id) + ', ' + convert(varchar, @ref_id) End Fetch next from #large_cur into @referencel_loop, @external_loop End
Det kan godt være at det virker - det ligner lidt den kode jeg har i Delphi - og som jeg, af ydelseshensyn, gerne vil samle i én query. Hvilken database er det i? Det er vel ikke PAL-source, vel?
Jeg er næsten 100% sikker på at jeg har set en query der klarede sådan noget i et hug
Det jeg har skrevet her er REN SQL, det kan du bare stoppe direkte ind i en TQuery, og exekvere.
Sproget der er brugt er TSQL, mod en MS - SQL Server. Hvis ikke du skal køre det på en SQL server er jeg blank, og ville være nød til at lave det i PASCAL.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.