Avatar billede jensen363 Forsker
25. januar 2021 - 11:42 Der er 8 kommentarer og
1 løsning

Track original reference i tabel

Min tabel består i princippet af en Fra_ID og en Til_ID forstået på den måde at min Fra_ID er een unik værdi som kan ændres til en an ny unik værdi

Fra_ID      Til_ID
1000        2000

Dette kører derud af, og under forudsætning af at der kun er een bevægelse pr. record er alt ok .... imidlertid kan der ske det, at en ID kan skifte igen, og vil så optræde i samme liste :

Fra_ID      Til_ID
1000        2000
2000        3000

Jeg har behov for at kunne fastholde min oprindelige ID ( i ovenstående ID nr. 1000 ), og så kunne se alle de ændringer der er foretaget i forhold til dette oprindelige (start ) ID

Altså lidt i stil med dette :

Original  Til_ID
1000      2000
              3000

Nogen idé til løsning ?
Avatar billede Gustav Ekspert
25. januar 2021 - 11:55 #1
Brug en forespørgsel:

Select
    Min([Fra_ID]) As Original,
    Max([Til_ID]) As Seneste
From
    Tabelnavn
Avatar billede fdata Forsker
25. januar 2021 - 12:18 #2
"... kunne se alle de ændringer der er foretaget"

Så kommer du nok ikke udenom at tilføje et ekstra felt, der indeholder det oprindelige startnummer, som du så tager med igennem processen.

Fra_ID      Til_ID    Oprindeligt
1000        2000      1000
2000        3000      1000
Avatar billede jensen363 Forsker
25. januar 2021 - 12:25 #3
Det giver mig kun een række !!
Avatar billede jensen363 Forsker
25. januar 2021 - 12:31 #4
FData > Det var også lidt af det jeg kunne se som løsning, - har du noget modulkode der kan det ?
Avatar billede Gustav Ekspert
25. januar 2021 - 12:56 #5
> Jeg har behov for at kunne fastholde min oprindelige ID
> ( i ovenstående ID nr. 1000 ), og så kunne se alle de ændringer
> der er foretaget i forhold til dette oprindelige (start ) ID

Det viser din tabel, som den er.

>  Det var også lidt af det jeg kunne se som løsning

Det var nok nemmere, hvis du startede med, hvad du ønsker at se og på hvilken måde med repræsentative testdata og forventet output.
Avatar billede fdata Forsker
25. januar 2021 - 13:01 #6
Næ, ikke umiddelbart.
Men det må være noget med:

1. gang stempler du det oprindelige nummer ind:
Fra_ID      Til_ID    Oprindeligt
1000        2000      1000

Derefter - når du skal opdatere 2000-posten - kan du måske via et
  <OprNr>=DLookup(<Oprindeligt>,<DinTabel>,<Til_ID=2000>)
tjekke det oprindelige nummer. Det stempler du ned i den nye post:
Fra_ID      Til_ID    Oprindeligt
2000        3000      1000

MEN MEN MEN: Det er en anelse svært at hjælpe dig videre med de meget sparsomme oplysninger, du har givet :O)
Der kan jo være masser af faldgruber, f.eks. ikke-unikke numre.
Avatar billede jensen363 Forsker
25. januar 2021 - 13:26 #7
Det er udelukkende unikke værdier i såvel Fra_ID og Til_ID
Avatar billede jensen363 Forsker
25. januar 2021 - 15:19 #8
Jeg prøver at forklare mig lidt tydeligere

Mit datasæt består af omkring 300.000 rækkker hvoraf to kolonner er vigitig i den sammenhæng.

Første kolonne kalder OMFRBO ( indeholder for kolonnen kun unikke værdier ). Heri optræder et Registrerings ID fra en given dato ( ikke relevant for nu )

Denne OMFRBO kan ændre sig med et nyt Registrerings ID som lagres i feltet OMTIBO i kolonne nr .2.

Hvis der kommer så ny ændring det nummer der optræder i OMTIBO, vil dette nummer fra OMTIBO nu blive indsat som ny række hvor OMFRBO nu vil være værdien fra OMTIBO, og herefter vil der indsættes en ny  OMTIBO i den nye række

og så fremdeles ..... dette kan ske adskillige gange i løbet af et år.

Jeg har behov for at tracke den oprindelige OMFRBO med alle tilhørende OMTIBO ændringer der måtte relaterer til den oprindelige OMFRBO ....
Avatar billede fdata Forsker
26. januar 2021 - 11:00 #9
Hm. Hvis alle værdier er unikke, burde noget lignende #6 da være vejen frem.

Tabel: (OMFRBO, OMTIBO, ORIG)

Første gang (1000 -> 2000):
- Du tjekker, om der skulle være OMTIBO=1000
- Det er der ikke, så opretter du (1000, 2000, 1000)

Næste gang (2000 -> 3000):
- Du tjekker, om der skulle være OMTIBO=2000
- Det ER der, så henter du det oprindelige nummer via
Org=DLookup("ORIG",<DinTabel>,"OMTIBO=2000")
- Så opretter du (2000, 3000, Org)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester