Avatar billede htx98i17 Professor
07. november 2001 - 09:39 Der er 17 kommentarer og
1 løsning

top5 mest solgte, ud fra ordrelinjer

jeg vil lave en top5 mest solgte vare ud fra en tabel med ordrelinjer. Hver ordrelinje har et varid. Det er ud fra hvor mange rækker der har samme vareId, der skal laves en top5

hvilket vil sige at hvis der er 10 rækker der har samme varid, så skal den tælle 10 :)

hvordan laver jeg det?
Avatar billede disky Nybegynder
07. november 2001 - 09:40 #1
select count(varid) as num from Tabel order by num desc
Avatar billede disky Nybegynder
07. november 2001 - 09:41 #2
noget i den retning skulle kunne gøre det, du skal nok også hente andre værdier fra basen
Avatar billede htx98i17 Professor
07. november 2001 - 09:42 #3
hmm hehe, var dedt virkeligt så enkelt...

jeg tester lige :)
Avatar billede disky Nybegynder
07. november 2001 - 09:43 #4
jeg er ikke helt sikker, men \'give it a try\' :)
Avatar billede disky Nybegynder
07. november 2001 - 09:45 #5
var ikke så nemt, 2 sek
Avatar billede disky Nybegynder
07. november 2001 - 09:49 #6
okay denne her virker på min base.

select count(*) as num, ID from Tabel group by ID order by num desc limit 10
Avatar billede htx98i17 Professor
07. november 2001 - 09:50 #7
hehe nej

$hentordre = mysql_query(\"SELECT vareId, COUNT(vareId) AS num FROM tblorders ORDER BY num DESC\") or die (mysql_error());

giver sådan en fejl:
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
Avatar billede htx98i17 Professor
07. november 2001 - 09:52 #8
ja det gør den også her, jeg prøvede også med group by, men efter order by, og det ville den ikke, men den ville gerne med group by inden order by :)
Avatar billede htx98i17 Professor
09. november 2001 - 14:24 #9
hmm den virker vidst ik alligevel...

SELECT vareId, COUNT(vareId) AS num FROM tblorders GROUP BY id ORDER BY num LIMIT 5

den finder ikke det vareId som er mest solgt... den finder godt nok 5 varer, men det er ik dem der er mest solgt...
Avatar billede disky Nybegynder
09. november 2001 - 14:25 #10
hmm virker fint på min base
Avatar billede htx98i17 Professor
09. november 2001 - 14:27 #11
hmm hva kan der så være galt...
jeg har været inde i phpmyadmin for at tjekke om der nu er nogle varer som er solgt mere end een gang, og det er der... hvorfor faen virker det så ik...
Avatar billede disky Nybegynder
09. november 2001 - 14:28 #12
hmmm,

lige for at være helt sikker på problemstillingen, beskriv den lige igen.
Avatar billede htx98i17 Professor
09. november 2001 - 14:33 #13
ja deet tror jeg er en god ide,

jeg har en tabel som består af ordrelinjer...
være ordrelinje har et unikt id, og et vareId

Den skal så tælle sammen hvor mange gange hver vareId går igen, så man kan lave en top5 :)
Avatar billede disky Nybegynder
09. november 2001 - 14:33 #14
okay, jeg roder lige med det.
Avatar billede htx98i17 Professor
09. november 2001 - 14:35 #15
okai da :)
Avatar billede disky Nybegynder
09. november 2001 - 14:38 #16
okay hvad med denne her:

select distinct(vareId) as vareId, count(vareId) as count, uniktId from Tabel group by vareId order by count limit5

I min base henter den de 5 mest bruge søgeord (en søge base)
Avatar billede htx98i17 Professor
09. november 2001 - 14:45 #17
jep tilføjede en DESC så virkedee den
tak for det...
Avatar billede disky Nybegynder
09. november 2001 - 14:45 #18
hov, det har du ret i. Sorry den havde jeg glemt.

Rart at kunne hjælpe :)
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
Computerworld tilbyder specialiserede kurser i database-management

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