15. oktober 2007 - 11:17Der er
4 kommentarer og 1 løsning
Kobling af flere tabeller fra Navision via Microsoft Query
Jeg vil oprette en databaseforespørgsel, som henter 2 tabeller fra Navision, Medarbejdere og Lønsatser. I tabellen Lønsatser er der flere records pr. medarbejder, og det resulterer i flere linier pr. medarbejder i min forespørgsel. Records skal afgrænses på den record i Lønsatser, som har den højeste Dato i et datofelt. Nogen som ved hvordan jeg sætter den til at finde den højeste datoværdi?
Du kunne f.eks. - sortere dine data først efter navn og derefter dato descending. - lave en unik filter liste med kun navnet een gang - lave en lookup i denne liste til din hovedliste - den vil så tage den første værdi i hvert tilfælde, hvilket er den nyeste.
Sig til om du ikke her tjek på unik filtrering eller lookups
Har lige opdaget, at seneste dato ikke er nok som filter, da lønsatserne for f.eks. elever er tastet ind for hele elevforløbet jvf. gældende overenskomst. Det kan jeg se mig ud af ved at lave et filter som <=[Indtast Løndato], hvor man så indtaster den seneste dato, man ønsker vist - f.eks. dags dato. (Hvis nogen har en bedre ide er jeg lydhør).
Ellers har jeg lavet sortering på medarbejdernr. og dato stigende, men er i tvivl om, hvordan jeg laver en unik filtrering så hver medarbejder kun vises en gang. Jeg arbejder inde i Microsoft Query.
Den sortering jeg tænkte på var medarb.nr., men så dato faldende så den nyeste stod først. Og så lave en unik sortering af dine med.arb.nr. i xl: Skriv overskriften for med.arb.nr et andet sted i sheet'et, og tag menu - data - filter - advanced filter, click på options "copy to another location" og på "unique records only". Definer list range til hvor med.arb.nr står - eks. $A$1:$A$1000, criteria range til den samme $A$1:$A$1000 og copy to boksen til hvor du har skrevet overskriften med.arb.nr anden gang - eks.$e$1 og tryk OK. Så vil en lookup til denne nye liste hele tiden tage den nyeste løn.
Alternativt kunne du, hvis du som du nævner har dato i stigende orden i col.B og medarb.nr i col.A og løn i col.C lave følgende formel i col.D: begydende i D2: =IF(A2<>A3;C2;"gammel") den vil så tage den løn hvergang med.arb.nr skifter, men vil så til gengæld kræve en simpel sortering til sidst for at få listen unik per medarb.nr
Fandt ud af, at det nok var for besværligt at få det rigtige resultat via en forespørgsel i Excel, så jeg lavede en funktion i Navision som selv opretter et regneark med de rigtige data. Men Luffe, du gav mig et par fif alligevel, så hvis du svarer på denne får du pointene.
Tak for det. Ellers må du vende tilbage - sortering / udvælgelse kan jo gøres på mange måder. // Luffe
Synes godt om
Ny brugerNybegynder
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.