Avatar billede somaliomar Praktikant
16. september 2002 - 16:50 Der er 38 kommentarer og
2 løsninger

Top 10 liste over bedste målscorere!

Jeg har ud fra nogle tabeller sammensat en forespørgsel, der ser sådan ud:

ID    Navn    Scoringer    Øreniveau    Måltype
-    -    -        -        -
-    -    -        -        -
-    -    -        -        -

Nu vil jeg lave en rapport, der viser de 10 personer, der har scoret de fleste mål for hver måltype. Det vil med andre ord sige, at jeg vil lave en top 10 liste over målscorere for hver måltype. Der findes fire måltyper; Fod, Hånd, Hoved, Øre. Ved måltype Øre, vises posterne i Øreniveau. Resultatet burde se sådan ud:

Fod - Top 10
ID    Navn    Scoringer    Måltype
-    -    -        -
-    -    -        -

Hånd - Top 10
ID    Navn    Scoringer    Måltype
-    -    -        -
-    -    -        -

Hoved - Top 10
ID    Navn    Scoringer    Måltype
-    -    -        -
-    -    -        -

Øre - Top 10
ID    Navn    Scoringer    Niveau        Måltype
-    -    -        -        -
-    -    -        -        -


Jeg kan sagtens lave en rapport, der viser alle spillere for hver måltype. Problemet er bare, at der vises alle spillere i databasen. Jeg skal kun have de 10 bedste målscorere.
Er der nogle herinde, der bare har en idé om hvordan dette kunne løses? Alle idéer og forslag er velkomne.
Avatar billede snowball Novice
16. september 2002 - 17:02 #1
Den SQL sætning som du bruger til at hente alle spillere ud af databasen med, prøv og indsæt TOP 10, så der f.eks. står SELECT TOP 10 * FROM spillere WHERE Måltype = Fod

Snowball
Avatar billede ingolf Nybegynder
16. september 2002 - 17:02 #2
Start pivottabel under DATA i Excell. Træk dataene direkte fra tabel eller forespørgsel i Access. Byg pivottabellen op som du ønsker. Højreklik over pivottabellen og vælg feltindstillingen. Under denne vælges avanceret. Der kan du vælge dine 10 øverste(bedste) eller nederste. Du finder ikke noget der snildere kan behandle ovenstående data, og det er smidig. Men har du ikke prøvet det før kan det da godt være du skal tænke lidt, men jeg tror du er kvik, og kan finde ud af det.
hej.
Avatar billede mugs Novice
16. september 2002 - 17:04 #3
En Top10 sætning kan se således ud i SQL i en forespørgsel

SELECT TOP 10 Tabel1.nr, Tabel1.felt1, Tabel1.tid
FROM Tabel1
ORDER BY Tabel1.nr DESC;
Avatar billede somaliomar Praktikant
16. september 2002 - 17:09 #4
snowball og mugs >> Jeg kan godt få top de 10 bedste scorere frem på en rapport. Det jeg skal have er, de 10 bedste målscorer fra hver måltype!

ingolf >> Det skal helst være sådan, at jeg ikke skal ekspotere data i et andet program. Kan man hente de 10 bedste spillere fra hver måltype ind i en rapport?
Avatar billede snowball Novice
16. september 2002 - 17:11 #5
somaliomar: Du skal jo bare angive måltype i din SQL sætning li'som jeg skrev i mit eksempel !

SELECT TOP 10 * FROM spillere WHERE Måltype = Fod

Snowball
Avatar billede somaliomar Praktikant
16. september 2002 - 17:13 #6
snowball >> Det er rigtig nok, men så kommer kun de 10 bedste fra den ene måltype. Jeg skal have de 10 bedste fra alle måltyper.
Avatar billede mugs Novice
16. september 2002 - 17:13 #7
snowball > Så vises kun de poster hvor Måltypen er = Fod, og ikke de andre typer.
Avatar billede terry Ekspert
16. september 2002 - 17:14 #8
This is just an idea.
Make an aggregate query, you do this by pressing the funny Z symbol from the menu. Then select the fields you want to group on, and sum the field scoring.

Then you will need to make a query for each of the Goal types (Øre, fod ...) These need to be TOP 10 queries as mugs explains.
Now you have to make a UNION query to show all TOP 10 queries in one query.
Hope that points you in the correct direction!
Avatar billede snowball Novice
16. september 2002 - 17:16 #9
somaliomar: Det troede jeg også var meningen, men du vil åbenbart have alle Top 10 typer i samme rapport !? Nu er jeg ikke lige så stærk i Access men kan du så ikke bare lave 4 SQL sætninger !?

Snowball
Avatar billede terry Ekspert
16. september 2002 - 17:17 #10
You should actually be able to make just two queries, one to group an dtehn the UNION
Avatar billede mugs Novice
16. september 2002 - 17:18 #11
Du kan lave din forespørgsel med din Top10 sætning. Derefter åbner du forespørgslens designvindue. Tryk på Vis > Totaler på den menulinie. I designgitteret indsættes en ekstra række med Totaler. I feltet Måltype skal du i denne linie vælge Grupper Efter.

I databasevinduet vælger du fanen Rapport > Ny > Guiden Rapport. I opsummeringsindstillinger vælger du feltet Måltype.
Avatar billede somaliomar Praktikant
16. september 2002 - 17:18 #12
terry >> I think u got it. Can you show how to do it?

snowball >> Det tror jeg ikke kan lade sig gøre. Det har jeg prøvet!
Avatar billede terry Ekspert
16. september 2002 - 17:20 #13
If you send the db to terry@santhell.dk then I will do it for you
Avatar billede somaliomar Praktikant
16. september 2002 - 17:21 #14
terry >> I want to learn how you do it!
Avatar billede terry Ekspert
16. september 2002 - 17:32 #15
You will be able to see how I do it when you get it back! I will also publish the answer here. Sending the dB will save me having to make the table and enter data, which may end up not being the same as your data which may result in me waisting time, which I dont want to do.
Avatar billede somaliomar Praktikant
16. september 2002 - 17:39 #16
terry >> I know that but just give it an exampel how you want to do it. I'm just interested in how the syntaxt is made. Besides the size of the database is more than 10 MB :)
Avatar billede terry Ekspert
16. september 2002 - 17:46 #17
you can copy the table to another dB or even export it to a text file
I only need the table with some data in
Avatar billede bispensgipsgebis Nybegynder
16. september 2002 - 17:49 #18
SELECT fod.Navn fodNavn, fod.Scoringer fodScoring, hoved.Navn hovedNavn, hoved.Scoringer hovedScoring
FROM (SELECT TOP 10 Navn, Scoringer FROM tablename WHERE Måltype='Fod' ORDER BY Scoringer DESC) fod, (SELECT TOP 10 Navn, Scoringer FROM tablename WHERE Måltype='Hoved' ORDER BY Scoringer Desc) hoved

Ovenstående skulle hente navn og antal scoringer for henholdsvis fod og hoved. Du kan selvfølgelig selv tilføje flere "tabeller" for de andre måltyper.

Sig lige til hvis det virker

/Rune
Avatar billede somaliomar Praktikant
16. september 2002 - 18:03 #19
Ok
Avatar billede somaliomar Praktikant
16. september 2002 - 18:03 #20
terry >> Sent
Avatar billede somaliomar Praktikant
16. september 2002 - 18:04 #21
bispensgipsgebis >> Jeg har kun en tabel ved navn Målscorer!
Avatar billede bispensgipsgebis Nybegynder
16. september 2002 - 18:11 #22
jamen så skal du jo bare skifte tablename i mit eksempel ud med Målscorer.
Avatar billede somaliomar Praktikant
16. september 2002 - 18:12 #23
bispensgipsgebis >> Prøver lige :)
Avatar billede somaliomar Praktikant
16. september 2002 - 18:20 #24
Det her virker ikke:

SELECT Målscorer.Navn, Målscorer.Scoringer, Målscorer.Øreniveau
FROM (SELECT TOP 10 Navn, Scoringer FROM Målscorer WHERE Måltype = 'Fod'),  (SELECT TOP 10 Navn, Scoringer FROM Målscorer WHERE Måltype = 'Hoved')
ORDER BY Scoringer Desc;

bispensgipsgebis >> Ved du hvad jeg har gjort galt her?
Avatar billede mugs Novice
16. september 2002 - 18:21 #25
somaliomar > Nu lader det til, at du har valgt en anden løsning end min, og det er helt fint. Men hvis du ikke kender noget til Guiden Rapport, så gør dig selv en tjeneste og prøv mit forslag.

Jeg synes ofte, at objektet Rapporter en lidt overset i Access-sammenhæng. Specielt hvis der er numeriske felter i forespørgslen, kan Guiden Rapport virkelig give dig nogle statistikker, som det vil tage lang tid at indsætte i forespørgsler m.v. Og det tager kun et øjeblik at lave.

Jeg besvarede engeng et spørgsmål her på siden, hvor spørgeren ville eksportere til Excel, for at lave nogle statistikker og søjlediagram-mer. Det viste sig slet ikke at være nødvendigt. Access kunne sagtens klare det og mere til.

Prøv at eksperimentere lidt med det, og du vil blive forbavset. Prøv også med Guiden Diagram, der kan give virkelig flotte og informative diagrammer.
Avatar billede somaliomar Praktikant
16. september 2002 - 18:22 #26
mugs >> God ide. Jeg afprøver guiden...
Avatar billede somaliomar Praktikant
16. september 2002 - 18:27 #27
mugs >> Problemet med guiden er bare, at der ikke er mulighed for at vise de 10 bedste spillere for hver måltype!
Avatar billede mugs Novice
16. september 2002 - 18:30 #28
somaliomar > Du er også velkommen til at senden din tasbel til mig, så vil jeg senere iaften lave nogle eksempler på, hvad Access kan lave af beregninger og diagrammer ved hjælp af guiderne, som ikke kræver noget særlig kendskab til Access at bruge.

Jeg bruger access97.

mugs@mail.dk
Avatar billede mugs Novice
16. september 2002 - 18:34 #29
somaliomar > korrekt, men din Top10 indsætter du i forespørgslen, og benytter denne forespørgsel som postkilde i guiden.

Jeg svarer sjældent her på siden, uden jeg har afprøvet mit svar. Min kommentar kl 17:18 er afprøvet, og giver det resultat du ønsker.
Avatar billede somaliomar Praktikant
16. september 2002 - 18:39 #30
mugs >> Afsendt!
Avatar billede terry Ekspert
16. september 2002 - 19:14 #31
This is just for the "Øre" and "Fod" I am sure you can see how it works


SELECT TOP 10 Målscorer.Navn, Målscorer.Måltype, Målscorer.Scoringer
FROM Målscorer
GROUP BY Målscorer.Navn, Målscorer.Måltype, Målscorer.Scoringer
HAVING (((Målscorer.Måltype)="Fod"))
ORDER BY Målscorer.Måltype, Målscorer.Scoringer DESC UNION
SELECT TOP 10 Målscorer.Navn, Målscorer.Måltype, Målscorer.Scoringer
FROM Målscorer
GROUP BY Målscorer.Navn, Målscorer.Måltype, Målscorer.Scoringer
HAVING (((Målscorer.Måltype)="Øre"))
ORDER BY Målscorer.Måltype, Målscorer.Scoringer DESC;
Avatar billede terry Ekspert
16. september 2002 - 19:17 #32
actually you doint need to group
SELECT TOP 10 Målscorer.Navn, Målscorer.Måltype, Målscorer.Scoringer
FROM Målscorer
WHERE (((Målscorer.Måltype)="Fod"))
ORDER BY Målscorer.Måltype, Målscorer.Scoringer DESC UNION
SELECT TOP 10 Målscorer.Navn, Målscorer.Måltype, Målscorer.Scoringer
FROM Målscorer
WHERE (((Målscorer.Måltype)="Øre"))
ORDER BY Målscorer.Måltype, Målscorer.Scoringer DESC;
Avatar billede somaliomar Praktikant
16. september 2002 - 19:36 #33
terry >> Thank you very much! Do you know how I can show the colomn Øreniveau when I select the Måltype = Øre?
Avatar billede somaliomar Praktikant
16. september 2002 - 19:39 #34
I want to create a report that look like this:

Fod - Top 10
ID    Navn    Scoringer    Måltype
--    ---        -----        -----
--    ---        -----        -----

Hånd - Top 10
ID    Navn    Scoringer    Måltype
--    ---        -----        -----
--    ---        -----        -----

Hoved - Top 10
ID    Navn    Scoringer    Måltype
--    ---        -----        -----
--    ---        -----        -----

Øre - Top 10
ID    Navn    Scoringer    Niveau        Måltype
--    ---        -----        -----          -------
--    ---        -----        -----          -------
Avatar billede terry Ekspert
16. september 2002 - 19:51 #35
You will need to include Øreniveau in th equery

SELECT TOP 10 Målscorer.Navn, Målscorer.Måltype, Målscorer.Scoringer, Øreniveau
FROM Målscorer
WHERE (((Målscorer.Måltype)="Fod"))
ORDER BY Målscorer.Måltype, Målscorer.Scoringer DESC UNION SELECT TOP 10 Målscorer.Navn, Målscorer.Måltype, Målscorer.Scoringer, Øreniveau
FROM Målscorer
WHERE (((Målscorer.Måltype)="Øre"))
ORDER BY Målscorer.Måltype, Målscorer.Scoringer DESC;

Then it would be easier if you displayed the fields like this
Øre - Top 10
ID    Navn    Scoringer      Måltype        Niveau       
--    ---        -----        -----          -------
--    ---        -----        -----          -------

Then in the report the column will be empty
Avatar billede somaliomar Praktikant
16. september 2002 - 19:54 #36
You mean i cann't do it in other way?
Avatar billede terry Ekspert
16. september 2002 - 20:00 #37
I have tried to do it in code in the report and it seems to work but it depend which section your label is on

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Me.Måltype = "Øre" Then
    Me.Øreniveau_Label.Visible = False
   
Else
    Me.Øreniveau_Label.Visible = True

End If

End Sub
Avatar billede somaliomar Praktikant
16. september 2002 - 20:10 #38
terry >> Once more, many thanks!
Avatar billede terry Ekspert
16. september 2002 - 20:12 #39
your welcome :o)

Nice page you have there
http://www.bilensmode.subnet.dk/
Avatar billede somaliomar Praktikant
19. september 2002 - 20:16 #40
It's an old hp I made, when I folkeskolen :)
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