Avatar billede mite Nybegynder
24. april 2006 - 09:29 Der er 7 kommentarer og
1 løsning

Udtræk af data fra forespørgsel

I min asp-fil skal have trækket data ud fra en forespørgsel i access. Det er i sig selv ingen kunst, men denne her volder mig store problemer.

Jeg har været så heldig at terry hjalp med forespørgslerne og nu mangler jeg så bare lige at få data korrekt ud i min asp-fil.

Både asp-fil og db kan downloades fra www.haargalleriet.net/eksperten.zip.

Min første forespøgsel ser således ud (qryPG):
SELECT HOLDPULJE.puljeID AS PID, Count(HOLDPULJE.autoID) AS AID, Sum(GEBYR.gebyr) AS G
FROM GEBYR INNER JOIN ((HOLDPULJE INNER JOIN HOLDNAVNE ON HOLDPULJE.autoID = HOLDNAVNE.autoID) INNER JOIN [SELECT DISTINCT RundeNr FROM POINTS]. AS P ON HOLDNAVNE.holdRundeNr = P.RundeNr) ON GEBYR.autoID = HOLDPULJE.autoID
GROUP BY HOLDPULJE.puljeID
ORDER BY HOLDPULJE.puljeID, Count(HOLDPULJE.autoID);

For at få det jeg skal bruge i min asp-fil bruger jeg en ny forespørgsel (qryTerryNew) som anvender ovenstående forespøgsel. Forespørgslen ser således ud:
SELECT HOLDPULJE.puljeID, PULJE.puljeNavn, Sum(Points.point) AS Point, PULJESTILLINGALM1.G, [Point]-[G] AS AntPoint, PULJESTILLINGALM1.AID, ([AntPoint])/[AID] AS PointAverage
FROM PULJESTILLINGALM1 INNER JOIN ((HOLDPULJE INNER JOIN (holdspillere LEFT JOIN Points ON holdspillere.spillerID = Points.spillerID) ON (holdspillere.holdID = HOLDPULJE.holdID) AND (HOLDPULJE.autoID = holdspillere.autoID)) INNER JOIN PULJE ON HOLDPULJE.puljeID = PULJE.puljeID) ON PULJESTILLINGALM1.PID = PULJE.puljeID
WHERE (((HOLDPULJE.puljeform)<>"firma") AND ((Points.rundeNr)>=[holdspillere].[holdrundenr] And (Points.rundeNr)<=[holdspillere].[tilrundenr]))
GROUP BY HOLDPULJE.puljeID, PULJE.puljeNavn, PULJESTILLINGALM1.G, [Point]-[G], PULJESTILLINGALM1.AID;

Når forespørgslen køres i access kommer det rigtige resultat, men når forespørgslen køres i asp-filen kommer der et forkert resultat.
Jeg har fundet ud af at når jeg fjerne TOTALER i forespørgslen qryTerryNew og kører denne i access så får jeg nøjagtig samme resultat som jeg gør i asp-filen.

Håber virkelig på hjælp.
/mite
Avatar billede eagleeye Praktikant
24. april 2006 - 11:50 #1
Hvis [Point] (i [Point]-[G]) skal være sum(Points.point) as Point samt det med AntPoint skal være Pint-[G] så prøv:


SELECT HOLDPULJE.puljeID, PULJE.puljeNavn, Sum(Points.point) AS Point, PULJESTILLINGALM1.G, (Sum(Points.point)-[G]) AS AntPoint, PULJESTILLINGALM1.AID, (Sum(Points.point)-[G])/[AID] AS PointAverage
FROM PULJESTILLINGALM1 INNER JOIN ((HOLDPULJE INNER JOIN (holdspillere LEFT JOIN Points ON holdspillere.spillerID = Points.spillerID) ON (holdspillere.holdID = HOLDPULJE.holdID) AND (HOLDPULJE.autoID = holdspillere.autoID)) INNER JOIN PULJE ON HOLDPULJE.puljeID = PULJE.puljeID) ON PULJESTILLINGALM1.PID = PULJE.puljeID
WHERE (((HOLDPULJE.puljeform)<>"firma") AND ((Points.rundeNr)>=[holdspillere].[holdrundenr] And (Points.rundeNr)<=[holdspillere].[tilrundenr]))
GROUP BY HOLDPULJE.puljeID, PULJE.puljeNavn, PULJESTILLINGALM1.G, Sum(Points.point)-[G], PULJESTILLINGALM1.AID;
Avatar billede mite Nybegynder
24. april 2006 - 12:08 #2
Der kommer fejl:
En aggregatfunktion kan ikke bruges i GROUP BY-delsætningen (sum(points.point)-[G]).

Du skulle gerne få samme fejl hvis du har downloaded zip-filen fra linket foroven.
Avatar billede eagleeye Praktikant
24. april 2006 - 12:44 #3
så prøv sådan her:


SELECT HOLDPULJE.puljeID, PULJE.puljeNavn, Sum(Points.point) AS Point, PULJESTILLINGALM1.G, (Sum(Points.point)-[G]) AS AntPoint, PULJESTILLINGALM1.AID, (Sum(Points.point)-[G])/[AID] AS PointAverage
FROM PULJESTILLINGALM1 INNER JOIN ((HOLDPULJE INNER JOIN (holdspillere LEFT JOIN Points ON holdspillere.spillerID = Points.spillerID) ON (holdspillere.holdID = HOLDPULJE.holdID) AND (HOLDPULJE.autoID = holdspillere.autoID)) INNER JOIN PULJE ON HOLDPULJE.puljeID = PULJE.puljeID) ON PULJESTILLINGALM1.PID = PULJE.puljeID
WHERE (((HOLDPULJE.puljeform)<>"firma") AND ((Points.rundeNr)>=[holdspillere].[holdrundenr] And (Points.rundeNr)<=[holdspillere].[tilrundenr]))
GROUP BY HOLDPULJE.puljeID, PULJE.puljeNavn, PULJESTILLINGALM1.G, PULJESTILLINGALM1.AID;
Avatar billede eagleeye Praktikant
24. april 2006 - 12:45 #4
men hvis jeg downloader zip filen kan den ikke finde:  PULJESTILLINGALM1
Avatar billede mite Nybegynder
24. april 2006 - 12:59 #5
nej okay...de hedder qryPG og qryTerryNew...undskyld
Avatar billede eagleeye Praktikant
24. april 2006 - 13:04 #6
ok, men hvad sker der hvis du prøver den sidste fra asp?
Avatar billede mite Nybegynder
24. april 2006 - 13:54 #7
jamen det virker jo bare...det er perfekt...laver du et svar.
Tusind tak for hjælpen.

/mite
Avatar billede eagleeye Praktikant
24. april 2006 - 14:15 #8
Ok så kommer der et svar :)
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
Kurser inden for grundlæggende programmering

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