Avatar billede teamdev Novice
08. september 2005 - 12:00 Der er 18 kommentarer og
1 løsning

2 tabeller, top 5

Hejsa,

jeg har 2 tabeller

tbl_log med felterne:
ID (auto)(key)
ProblemID (tal)
Dato (datotid)

tbl_Problem
ProblemID (Auto) (key)
Beskrivelse

Jeg har brug for at vise de 5 hyppigst forkommende problemer sorteret efter hyppighed, hvor datoen er efter eks. 01-01-2005

jeg har lavet en forespørgsel (frsp1):
SELECT tbl_Problemer.ProblemID, tbl_Problemer.Betegnelse, tbl_Log.Historikdato
FROM tbl_Problemer RIGHT JOIN tbl_Log ON tbl_Problemer.ProblemID = tbl_Log.ProblemID
WHERE (((tbl_Log.Historikdato)>#1/1/2005#))
ORDER BY tbl_Log.Historikdato;

det virker sådan set fint. Viser mig alle problemer i år.

dernæst endnu en forespørgsel (frsp_log-frsp1)


SELECT DISTINCTROW frsp1.tbl_Problemer.ProblemID, frsp1.Betegnelse, Count(*) AS [Antal]
FROM frsp1
GROUP BY frsp1.tbl_Log.ProblemID, frsp1.tbl_Problemer.ProblemID,frsp1.Betegnelse;

Her får jeg talt forekomsterne helt fint.

Forespørgsel 3: (top 5)
SELECT TOP 5 frsp_log-frsp1.[Antal] AS forekomster, frsp_log-frsp1.Betegnelse
FROM frsp_log-frsp1
ORDER BY frsp_log-frsp1.[Antal] DESC;

Mit spørgsmål . Kan det for h...... ikke gøres på en enklere måde. eventuelt i et snuptag .

Indrømmer blankt at jeg dels ikke har sovet nævneværdigt i nat og at jeg er noget rusten i access.
Avatar billede terry Ekspert
08. september 2005 - 15:52 #1
Ig you can send me a dB with the tables/queries then I can maybe look at it this evening?

eskperten@NOSPAMsanthell.dk

remove NOSPAM
Avatar billede terry Ekspert
08. september 2005 - 15:52 #2
Ig = if
Avatar billede claesdamlund Nybegynder
08. september 2005 - 17:09 #3
Hvad med:

SELECT TOP 5 tbl_Problemer.ProblemID, tbl_Problemer.Betegnelse, Count(*) AS [Antal]
FROM tbl_Problemer RIGHT JOIN tbl_Log ON tbl_Problemer.ProblemID = tbl_Log.ProblemID
WHERE (((tbl_Log.Historikdato)>#1/1/2005#))
GROUP BY tbl_Problemer.ProblemID, tbl_Problemer.Betegnelse
ORDER BY .[Antal] DESC;
Avatar billede claesdamlund Nybegynder
08. september 2005 - 17:18 #4
Der var et punktum for meget med - sidste linie skulle se sådan ud:

ORDER BY [Antal] DESC;
Avatar billede teamdev Novice
09. september 2005 - 00:16 #5
claes -> Virker ikke :-( Får en "input" boks i hovedet lige meget hvad jeg hælder i den får jeg 66 poster returneret.
Avatar billede teamdev Novice
09. september 2005 - 00:18 #6
Terry -> Would have loved to send the dB but lots of the data in it are confidential, and it's quite a mess to clean up or empty. Sorry but thanks for the offer
Avatar billede teamdev Novice
09. september 2005 - 00:20 #7
Det jeg har skrevet i mit spørgsmål virker rent faktisk fint. Jeg får returneret de 5 hyppigste poster. Det jeg efterspørger er en workaround så jeg ikke skal ud i at lave 3 forespørgsler. det må da kunne gøres på en enklere måde
Avatar billede claesdamlund Nybegynder
09. september 2005 - 00:42 #8
Prøv uden de skarpe paranteser om Antal:

SELECT TOP 5 tbl_Problemer.ProblemID, tbl_Problemer.Betegnelse, Count(*) AS Antal
FROM tbl_Problemer RIGHT JOIN tbl_Log ON tbl_Problemer.ProblemID = tbl_Log.ProblemID
WHERE (((tbl_Log.Historikdato)>#1/1/2005#))
GROUP BY tbl_Problemer.ProblemID, tbl_Problemer.Betegnelse
ORDER BY Antal DESC;
Avatar billede teamdev Novice
11. september 2005 - 20:30 #9
Det gi'r ingen forskel claes. :-(
Avatar billede terry Ekspert
11. september 2005 - 20:35 #10
is it possible to send an example with "test" queries/data? I dont want to have to make the tables myself (too lazy :o))
Avatar billede terry Ekspert
18. september 2005 - 13:11 #11
status?
Avatar billede teamdev Novice
20. september 2005 - 11:40 #12
Sorry i've been way to buzy with other stuff Terry. I'll send you a db with some test data later this week.
By the way  is this the correct mail? eskperten@NOSPAMsanthell.dk - NOSPAM
Avatar billede terry Ekspert
20. september 2005 - 12:07 #13
email isnt quite correct, have used it before, and could understand why I didnt receive an mails :o)


eksperten@NOSPAMsanthell.dk - NOSPAM
Avatar billede claesdamlund Nybegynder
20. september 2005 - 13:45 #14
Hvad står der i den "inputbox" du får i hovedet?
Avatar billede teamdev Novice
20. september 2005 - 14:07 #15
Hej claes, Øverst står:
Indtast parameterværdi

I selve vinudet står count og så er der et textfelt jeg kan skrive i og to knapper  OK og annuller
Avatar billede claesdamlund Nybegynder
20. september 2005 - 14:34 #16
Access er lidt underlig på nogle områder, så prøv denne i stedet:

SELECT TOP 5 tbl_Problemer.ProblemID, tbl_Problemer.Betegnelse, Count(*) AS Antal
FROM tbl_Problemer RIGHT JOIN tbl_Log ON tbl_Problemer.ProblemID = tbl_Log.ProblemID
WHERE (((tbl_Log.Historikdato)>#1/1/2005#))
GROUP BY tbl_Problemer.ProblemID, tbl_Problemer.Betegnelse
ORDER BY Count(*) DESC;
Avatar billede teamdev Novice
20. september 2005 - 15:03 #17
Smukt claes. Den sad lige hvor den skulle, havde egentlig nedprioriteret det lidt,men takker.

Smid lige et svar
Avatar billede claesdamlund Nybegynder
20. september 2005 - 16:27 #18
Tak
Avatar billede teamdev Novice
20. september 2005 - 17:29 #19
Mig der takker
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