06. september 2000 - 07:30Der er
8 kommentarer og 1 løsning
Total af tal felter
Jeg har en database med vores medlemmer, jeg skal så have knyttet deres resultater til medlemmerne og kun have udskrevet deres sidste spilledag, men total og antal serier total af alle spilledage.
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Jeg har en Access2000 database, hvor jeg har en masse medlemmer(Licensnummer, fødslesdato, Fornavn, Efternavn, Adresse, postnr, tlfnr). Til hvert medlem skal der så knyttes deres resultater, samt dato for resultatet. På rapporten skal der så stå deres navn, licensnummer, sidste spilledato, resultaterne for sidste spilledato, hvor mange serier de har spillet ialt, samt totalen for alle serierne.
ja, men det er ikke bare noget du lige kan få med en enkel og simpel SQL sag. Du er nødt til at programmere dig ud af det med et vbscript, og så vælge ALLE records i databasen:
eks i pseudokode:
1. select alle fra tabellen, group by navn, og order by sidste spille dato.
2. loop igennem de records du finder og tæl alle totaler op indtil næste record er med et nyt navn. Hvis de er sorteret i datoorden vil deres sidste spilledag jo være den sidste record. Jeg formoder dermed at de kun har en registrering pr. spilledag.
3. Når det i loopet skifter til et nyt navn har du været igennem alle records for den forrige bruger og kan derfor udskrive totalerne for den pågældende, inden du går igang med at loope for den næste bruger.
Det er det samme man gør når man vil lave udskifter med sub-totaler o.s.v.
Men hvordan vil du registrere flere serier og spille datoer i din DB hvis licensnummer er et unikt nummer og derfor kun kan bruges til en record ? Normalt ville man have min. 2 databaser hvor medlemsdb\'en er master og spilledage med resultater er detail DB\'en. Det gør det selvfølgeligt ikke lettere, men alternativet er at din record (for medlemmet) enten skal indeholde en hulens masse felter til at registrere info. om hver spilledag, eller også kun den seneste, og så må du manuelt i opdateringen sørge for at opdatere totaler m.m. Så vil det til gengæld være let at lave en liste.
Så allerførst skal du have styr på din database, og derefter skal du tænke som i \"gamle dage\" da du lavede udskrifter, hvis du har prøvet det nogen sinde ;-)
Og så altså selecte Alle, sortere dem rigtigt og så loope igennem fra start til slut og opsummere totaler og udskrive subtotaler under vejs.
Hvis du har to tabeller: 1. Medlemstabel Licensnummer, navn, ... 2. Resultat tabel Dato, licensnummer, resultat
Så skal du blot knytte licensnumrene sammen, vise alle felterne og grupper for hver enkelt person, vælg \"max\" for dato-feltet. Det giver dig det nyeste resultat for den enkelte person.
Hvis du skifter over til SQL view, så er følgende løsningen:
SELECT Medlemmer.Licensnr, Medlemmer.Navn, Resultater.Dato, Resultater.Resultat FROM Medlemmer INNER JOIN Resultater ON Medlemmer.Licensnr = Resultater.Licensnr WHERE (((Resultater.Dato)=DMax(\"[Dato]\",\"Resultater\",\"[Licensnr] = \" & [Medlemmer]![Licensnr])));
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.