Avatar billede sjoran Nybegynder
07. februar 2007 - 15:32 Der er 9 kommentarer og
1 løsning

Omvendt crosstab funktion

Jeg har en tabel med følgende kolonner
projekt, medarbejder, art, uge, month, year, mon, tue, wed, thu, fri, sat, sun

I felterne mon-sun ligger et antal timer, og jeg vil gerne have disse timer over i en ny kolonne, samtidig med at der dannes en ny kolonne med værdierne mon-sun alt efter hvor timerne ligger registreret i tabellen. Og mon-sun skal bare væk.

Jeg har selv prøvet med en union, hvor jeg laver en tabel pr. dag og så samler alle 7 tabeller med en union. Det virker også fint nok i Access, men når jeg så gerne vil lave en pivottabel på baggrund af tabellen i Excel, så står excel af. Det er som om Excel ikke kan hente eksterne data, når de består af en union forespørgsel i Access.
Avatar billede sjoran Nybegynder
07. februar 2007 - 15:33 #1
Altså den nye tabel skal have kolonnerne
projekt, medarbejder, art, uge, month, year, weekday, timer
Avatar billede jensen363 Forsker
07. februar 2007 - 15:55 #2
Er ikke helt med på hvad du vil ...

UNION kan godt benyttes til at lave en tabel som det foreslåede :

SELECT Tabel.projekt, Tabel.medarbejder, Tabel.art, Tabel.uge, Tabel.month, Tabel.year, "mon" AS Weekday, Tabel.mon AS Timer
FROM Tabel
UNION
SELECT Tabel.projekt, Tabel.medarbejder, Tabel.art, Tabel.uge, Tabel.month, Tabel.year, "tue" AS Weekday, Tabel.tue AS Timer
FROM Tabel
UNION
SELECT Tabel.projekt, Tabel.medarbejder, Tabel.art, Tabel.uge, Tabel.month, Tabel.year, "wed" AS Weekday, Tabel.wed AS Timer
FROM Tabel
UNION
SELECT Tabel.projekt, Tabel.medarbejder, Tabel.art, Tabel.uge, Tabel.month, Tabel.year, "thu" AS Weekday, Tabel.thu AS Timer
FROM Tabel
UNION
SELECT Tabel.projekt, Tabel.medarbejder, Tabel.art, Tabel.uge, Tabel.month, Tabel.year, "fri" AS Weekday, Tabel.fri AS Timer
FROM Tabel
UNION
SELECT Tabel.projekt, Tabel.medarbejder, Tabel.art, Tabel.uge, Tabel.month, Tabel.year, "sat" AS Weekday, Tabel.sat AS Timer
FROM Tabel
UNION
SELECT Tabel.projekt, Tabel.medarbejder, Tabel.art, Tabel.uge, Tabel.month, Tabel.year, "sun" AS Weekday, Tabel.sun AS Timer
FROM Tabel

Det sidste er jeg ikke med på ... altså at du I Excel vel lave en krydstabulering til hvad ... ??? det opridelige resultat ????
Avatar billede sjoran Nybegynder
07. februar 2007 - 16:14 #3
jensen363: Det er netop sådan jeg har gjort. Men excel vil ikke hente disse data. Derfor vil jeg høre om der er nogen der kan udtænke en anden metode.
Excel pivot skal bruges til gruppere data og skære det væk man ikke ønsker. Feks. til at se hvor mange timer en bestemt medarbejder har lagt i en bestemt måned osv. Eller hvor mange timer der i en bestemt måned er blevet registreret på søndage.
Avatar billede jensen363 Forsker
07. februar 2007 - 16:16 #4
Det kan du da klare i Access direkte !!!
Avatar billede sjoran Nybegynder
07. februar 2007 - 16:18 #5
Det var jeg ikke klar over. Men det hjælper mig nu heller ikke særlig meget, for det er ikke kun mig der skal kunne slice and dice i data, men også mine kollegaer. Og derfor laver jeg jo et grundudtræk med de felter der skal kunne grupperes, summeres, slices and dices på, og så kan de selv rode rundt i pivottabellen som de lyster.
Avatar billede jensen363 Forsker
07. februar 2007 - 16:21 #6
Hvis ikke du kan læse/eksportere fra en UNION til Excel, kan du på baggrund af din union oprette en tabel hvorfra du kan eksportere til Excel
Avatar billede sjoran Nybegynder
07. februar 2007 - 16:27 #7
Ja det er korrekt. Men det er planen at man altid skal have friske data i pivottabellen når man opdaterer pivottabellen, og det kan man ikke hvis man henter fra en tabel, men kun hvis det er en forespørgsel.
Avatar billede jensen363 Forsker
07. februar 2007 - 16:31 #8
Du skal jo have databasen åbnet på et eller andet tidspunkt for at opdatere, så du kan sagtens indbygge noget automatik som gør at en tabel opdateres
Avatar billede sjoran Nybegynder
08. februar 2007 - 08:10 #9
Det smarte ved at linke en pivottabel til en forespørgsel er at man ikke behøver at åbne Access og opdatere noget. Opdatering af pivottabellen kalder automatisk forespørgslen, som så kører og smider opdaterede data tilbage i pivottabellen. Forespørgslen er en ODBC forespørgsel ned mod et timeregistreringssystem.

Nå men er der nogen der har en alternativ løsning til at lave tabellen uden at bruge union.
Avatar billede sjoran Nybegynder
10. maj 2007 - 10:45 #10
Jeg lukker denne
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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