03. januar 2002 - 00:12Der er
14 kommentarer og 2 løsninger
Yderligere opdeling af forespørgsel
Jeg har tidligere fået god hjælp til nedenstående spørgsmål, og har nu et tillægsspørgsmål: Jeg har lavet en registreringsdatabase, hvor der indgår et datofelt. Jeg vil gerne lave en en forespørgsel, som både tæller antallet af en påpgældende registrering pr. år, samt antallet af en pågældende registrering pr. måned. Registreringen pr. år kan jeg sagtens finde ud af at lave, men når jeg prøver at kategorisere ud i måneder går det galt. Der kommer en fejlmeddelelse frem, om at \"jeg har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk \"Dato\" som en del af en aggregatfunktion. For januar måned har jeg skrevet et kriterium der hedder >=\"01-01-*\" Or <=\"31-01-*\", men alligevel vil det ikke lykkes. Er der nogen som kan hjælpe?
Jeg fik svaret: Prøv at lave en ny kolonne i forespørgslen, som hedder: Måned: Year([Dato]) & \"-\" & Month([Dato]) Herefter kan du gruppere og summere på denne kolonne som du vil. - Og ja, det virkede perfekt.
Nu er mit problem, at den registrering jeg gerne vil forespørge på samtidig, vedrører et felt, som omhandler personers alder. Indtastningen foregår ved specifik indtastning af alder (det skal det være), men jeg vil gerne forespørge antal registreringer fordelt på aldersgrupper af følgende størrelser: >=14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-44, 44-49, >50. Jeg har prøvet at opstille forskellige udtryk, som jeg adskiller med \"or\", men det virker ikke. Og ja, forespørgslen skal køre, sammen med månedsfordelingen, som ovenfor nævnt...
Det virker nu ikke rigtigt for mig. Problemet er også at jeg får listet alle dem, som der ligger inden for den givne aldersgruppe, med en linje til hver post. Jeg er interesseret i at vide hvor mange (dvs. en sammentælling), der ligger inden for hver aldersgruppe. Dvs. hvor mange ligger der i gruppen under 14 år, hvor mange ligger der mellem 15 og 19 år, osv. osv...
Kan du også hjælpe mig med hvordan jeg sætter det ind... (SQL er ikke min stærke side...)
I forvejen har jeg et udtryk stående som hedder: SELECT Count([Tabel Skema].RegNr) AS AntalOfRegNr FROM [Tabel Skema];
Da jeg tæller antallet af registrede poster på årsbasis.... (jeg går ud fra at de skal medtages.
Endvidere har jeg også brug for at opdele yderligere i en anden forespørgsel, hvor jeg skal trække oplysninger ud månedsvis. Der har jeg et udtryk stående i forvejen som hedder: jo også yderligere ved at at anvende udtrykket:
SELECT Count([Tabel Skema].RegNr) AS AntalOfRegNr, Year([Dato]) & \"-\" & Month([Dato]) AS Måned FROM [Tabel Skema] GROUP BY Year([Dato]) & \"-\" & Month([Dato]);
Hi robertholm... As far as I can see you have a problem here. You have grouped your query on Year and month but also need to group on age groups to be able to count those within each age group. It is possible to group on one or more fields, but this will return more records in the result.
For example after grouping by Year-Month you get two records as follows 1948-11 1948-12
These are both > 50 and you want to see how many are in the age group (>50) So you first need to calculate their age which gives an extra row in your query which you then need to group on also, and another row to count the number of records within the group. But this doesnt help because then you get the following
1948-11 53 1 1948-12 53 1
If you JUST grouped by age then you could see how many there are within each age group, but not as you are doing it at the moment. Another thing you want to think about the FULL date of birth. No good just using year+month to calculate an age.
Ok I see. This means I have to add field in the post, with the multiple age groups? But then I have both register exact age and which age group it belongs to, when filling in. E.g fill age 25 in, and fill in that it belongs to age group 25-29...?
I think the first thing is to decide EXACTLY what you want. Do you want to GROUP by Year and Month or do you want to see the number of people in the same age group? Decide what you want and then you can send me your database and I will take a look for you.
Thanks for your help. Unfortunately I\'m not able to send the DB to you, since it is workrelated, and contains confident informations. But I have chosen to use one of your suggestions: To group people by age group. Concerning the points, would it be correct if I give 50 to you and 50 to Larsen? - Robert
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.