Avatar billede leif Seniormester
06. september 2000 - 07:30 Der 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.

/leif
Avatar billede leif Seniormester
06. september 2000 - 15:21 #1
Måske mere forklaring:

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.

Er det muligt???
Avatar billede sjensen Nybegynder
06. september 2000 - 17:38 #2
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.



Avatar billede leif Seniormester
07. september 2000 - 09:18 #3
Det ligger som to forskellige tabeller.

Det du snakker om der, er jeg ikke så stærk i, sagt på en anden måde, fatter det ikke.

Har du mulighed fpr at lave et eksempel, som jeg måske kan bygge videre på???
Avatar billede leif Seniormester
17. september 2000 - 22:34 #4
Det fik jeg ikke meget ud af. Må finde ud af en anden løsning.
Avatar billede leif Seniormester
21. september 2000 - 08:21 #5
Nå, det er der ikke noget at gøre ved!!!
Avatar billede moses Praktikant
25. september 2000 - 11:11 #6
Hallo - er der nogen hjemme ?


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.

Alt kan laves i en og samme query.
Avatar billede leif Seniormester
25. september 2000 - 13:54 #7
Nu er ikke lige inde i query, er det muligt at du kunne lave det til mig???

Du skal nok få point for det.
Avatar billede leif Seniormester
25. september 2000 - 13:55 #8
Der skulle have stået:

Nu er jeg ikke lige inde i query, er det muligt at du kunne lave det til mig???

Du skal nok få point for det.
Avatar billede moses Praktikant
02. oktober 2000 - 10:00 #9
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])));

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