08. september 2005 - 12:00Der 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.
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;
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
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
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;
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
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;
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.