13. august 2008 - 12:41Der er
22 kommentarer og 1 løsning
Ægte novice spørgsmål
Hejsa
Et spørgsmål fra en ægte novice ;o) Jeg har 2 tabeller, som har næsten de samme kollonner. Alle poster er importerede i tabellerne - og der er mange. Jeg kan af praktiske årsager ikke importerer dem i en og samme tabel (læs det kan jeg ikke hitte ud af - i det de ligger i nogle forskellige formater) Når nu jeg så skal lave en forspørgelse, så ville jeg gerne kunne have f.eks periode i samme kollone fra begge tabeller - men det kan jeg ikke hitte ud af. Så spørgsmålet er hvorledes "ligger" jeg 2 tabeller sammen i en forspørgsel? Hilsen Ida
1. Opret en Udvælgelsesforespørgsel 2. Tilføj dine 2 tabeller 3. Find de to felter, som skal knytte tabellerne sammen 4. Træk med musen fra det ene felt over til det andet - så ser du en streg 5. Træk de felter, du har brug for, ned i gitteret
Hvis Access brokker sig over at felttyperne ikke passer sammen, må du lige ind i en af tabellerne og ændre typen.
Hmm den vil ikke.... Jeg har følgende Tabel 1. Tabel 2. Tabel 3. Cpr. nr Afdeling Afdeling Løn nr. Cpr. nr Cpr Navn Navn Navn Lønart Periode Periode Løn art Tekst Tekst Debet Debet Kredit Kredit
Som du kan se så har tabel 2+3 de samme felter, men jeg kan ikke bare ligge dem sammen pga. knas med importen. Tabel 1. har jeg fint fået koblet de 2 andre på. Men når jeg så forsøger at lave en forspørgelse hvor jeg ville have alle posteringer ud på en person. Så er det pt. lykkes mig at lave 2 forskellige forspørgsler hvor jeg taster cpr nr. ind - og så henter alle poster i den pågældende tabel for en person. Men men men jeg ville jo gerne kunne gøre sådan at jeg kunne nøjes med en forsprøgelse og så ville alle poster på en person komme frem - uanset hvilken tabel de ligger i. Hilsen IDa
Det ser ud som om, det er CPRnr, der er din nøgle (uha, det er vist ikke helt lovligt).
Hvis du har en forespørgsel, hvor du har alle 3 tabeller med, burde du kunne trække [CPR. nr] fra Tabel 2 og [CPR] fra Tabel 3 over på [CPR. nr] i Tabel1. Herefter kan du bare trække de felter, du har brug for (fra alle 3 tabeller), ned i gitteret.
ok prøver jeg. Og jo det er helt lovligt. Sidder på et lønkontor, med løndata som skal bruges til nogle afstemninger på det enklte personer - så jeg er sikker på at det er ok, ellers ved jeg ikke hvordan at Skat ville kende forskel på os :oD
Det er korrekt at beløbene skal afstemmes. Men jeg tror jeg har glemt at oplyse dig om at data i tabel 1 stammer fra perioden 2003-2005 og tabel 2 stammer fra perioden 2006-2007 Og jeg ville gerne ende ud med en tabel hvor perioderne står i samme kolonne i udtrækket. Beklager den manglende information /Ida
Du skal ud i noget af det der ikke er Access' helt stærke side nemlig en UNION query
Du laver en query der ser ud som nedenfor (med de felter du nu har) Opret en tom query og skift så til SQL view og tast felterne ind. Vær opmærksom på at de skal hedde nøjagtig det samme i begge tabeller. Ikke nogen med Lønart i en og loenart i en anden. Lav dernæst en anden query der bruger tabel 1 og den query du lige har lavet. Lav en join på CPR så du får alle poster fra tabel1 og de tilhørende fra din union query Det skulle gerne give dig det ønskede resultat. Hvis du har 2 poster i hver deres tabel der er 100% identiske, så tager UNION queryen kun den ene med i resultatet.
SELECT Afdeling, CPR, Navn, Periode, Lønart, Tekst, Debet, Kredit FROM Tabel2 UNION SELECT Afdeling, CPR, Navn, Periode, Lønart, Tekst, Debet, Kredit FROM Tabel3;
Ahaaa. Er det mon det, Ida vil? Jeg har måske tolket "perioderne står i samme kolonne i udtrækket" forkert. Jeg antog, at Tabel2 og Tabel3 skulle sammenlignes og afstemmes. En Union vil give en slags Tabel4, som er Tabel2 og Tabel3 i forlængelse af hinanden. Og det er måske i virkeligheden det, der er målet?
Yep det er det som er målet. Og det var ´faktisk en fejl at jeg ikke fik givet dig point også - fordi du har været så flik til at bruge så meget tid på mig :o) Takker og bukker for det. /Ida
Og nu har jeg prøvet det - og er faktisk helt stol nu, fordi det er lykkes mig at få det til at virke. Rent faktisk så er det lykkes så godt at jeg har fået mod på at koble endnu en tabel på :o) - og så lige oprette en form til at spørger ud fra - sådan at det hele fremkommer i en samlede rapport. Så skal jeg nok til at lege med et switchboard - men der vender jeg jo nok til bage til jer hajer ;o)
Hilsen Ida P.S Hugo gider du ikke smide et svar - fordi det virkede
SELECT Cpr, Navn, Periode, Lønart, Tekst, Debet, Kredit FROM Efter2006 UNION SELECT Cpr, Navn, Periode, Lønart, Tekst, Debet, Kredit FROM Før2005; UNION SELECT Cpr, Navn, Periode, Lønart, Tekst, Debet, Kredit FROM 2008;
Men jeg får ikke 2008 tallene med ud - jeg er sikker på at det "bare" er en eller anden lille teknisk fejl - men hvilen
Hej Ida ! Jeg kom lige forbi dit spørgsmål men kan se det er "accepteret". Hvis du ikke får svar på dit andet spørgsmål, kan det være fordi folk kan se i oversigten, at du har accepteret. Jeg kan derfor anbefale dig at oprette et nyt spørgsmål, så vil du sikkert få mere opmærksomhed. Henvis meget gerne til dette spørgsmål, så folk kan sætte sig ind i problemstillingen.
I den SQL du har skrevet her er der en ekstra ; efter 2005 - jeg er ikke helt 100% på om det er den der gør det, men prøv.
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.