Jag har tänkt att bygga en statistik-sida.
Det jag har tänkt att använda är sångtitlar och hits.
Det jag skulle behöva hjälp med är först SQL:en.
Fälnamnen är
Arrno (kanske inte behövs ta med)
songtitel
hits (enbart hits > 0)
Jag har försökt i Access att skapa en fråga, men kan inte få fram någon som
räknar ihop summorna i hits.
Om jag sen inte mins alldeles fel, så för att få ut procenten, så skall man ta
hits /totalhits, eller är jag fel ute?
Om vi stannar så här så länge så vore jag tacksam för alla steg på vägen.
[REDIGERAT]
Jag har kommit en bit på vägen.
Min SQL ser nu ut så här:
SQL="SELECT "&_
"(SELECT Sum(t_SongTitlar.Hits) FROM t_SongTitlar) AS
Totalantal, Count(t_SongTitlar.songtitel) AS antal, t_SongTitlar.songtitel,
t_SongTitlar.Hits "&_
"FROM "&_
"t_SongTitlar "&_
"GROUP BY t_SongTitlar.songtitel, t_SongTitlar.Hits "&_
"HAVING t_SongTitlar.Hits>0 "&_
"ORDER BY t_SongTitlar.songtitel, t_SongTitlar.Hits;"
Om det fungerar och resultatet blir som du förväntar dig så borde du vara på rätt spår tycker jag.
Däremot begriper jag inte varför du grupperar på kolumnen hits. Jag antar att hits i detta fallet är antalet nedladdningar eller liknande? Det du vill är förmodligen något i stil med detta.
SELECT
(SELECT Sum(t_SongTitlar.Hits) FROM t_SongTitlar) AS Totalantal,
Count(t_SongTitlar.songtitel) AS antal,
t_SongTitlar.songtitel,
sum(t_SongTitlar.Hits) AS hits
FROM
t_SongTitlar
GROUP BY
t_SongTitlar.songtitel
HAVING
t_SongTitlar.Hits > 0
ORDER BY
t_SongTitlar.songtitel, sum(t_SongTitlar.Hits)
Hej Brima, det ser nog bra ut, men en fråga, måste jag gruppera överhuvudtaget?
När det gäller hits, så uppdateras dessa genom att plusa på 1, är då gruppering nödvändig?
Nej det behöver du in, såvida du inte råkar ha dubletter av songtitel, men det har du troligtvis inte så förmodligen kan du göra såhär:
SELECT
(SELECT Sum(t_SongTitlar.Hits) FROM t_SongTitlar) AS Totalantal,
t_SongTitlar.songtitel,
sum(t_SongTitlar.Hits) AS hits
FROM
t_SongTitlar
WHERE
t_SongTitlar.Hits > 0
ORDER BY
t_SongTitlar.songtitel, sum(t_SongTitlar.Hits)
Det beror på att jag glömde ta bort mängdfunktionen sum() när jag skrev svaret. Ursäkta!
SELECT
(SELECT Sum(t_SongTitlar.Hits) FROM t_SongTitlar) AS Totalantal,
t_SongTitlar.songtitel,
t_SongTitlar.Hits
FROM
t_SongTitlar
WHERE
t_SongTitlar.Hits > 0
ORDER BY
t_SongTitlar.songtitel, t_SongTitlar.Hits
Brima, du är helt kanon, och behöver inte als be om ursäkt.
Jag kom nu på att jag skulle behöva lägga till yterliggare en subquery, för att
lätt kunna hitta högsta resultatet och färja det.
Den subquery som jag ville lägga till är:
(SELECT Max(t_SongTitlar.Hits) AS HeightHits)
Då borde ju hela SQL:en se ut så här:
SELECT
(SELECT Sum(t_SongTitlar.Hits) FROM t_SongTitlar) AS Totalantal,
(SELECT Max(t_SongTitlar.Hits) AS HeightHits),t_SongTitlar.songtitel,
t_SongTitlar.Hits
FROM
t_SongTitlar
WHERE
t_SongTitlar.Hits > 0
ORDER BY
t_SongTitlar.songtitel, t_SongTitlar.Hits
...men då får jag ett error:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel. i frågeuttrycket '(SELECT Max(t_SongTitlar.Hits) AS HeightHits)'.