Avatar billede akr21jb Nybegynder
09. februar 2002 - 21:17 Der er 17 kommentarer og
1 løsning

sql

SQL = "SELECT player.Player, Count(player.Player) AS TotalGames FROM player GROUP BY player.Player ORDER BY Count(player.Player) DESC;"

jeg vil gerne have noget ala

Where player like "playboys"

sat ind i ovenstående.
Altså kun alle navne hvor navnet playboys indgår skal vises.
Avatar billede erikjacobsen Ekspert
09. februar 2002 - 21:20 #1
uden nogen form for garanti, så prøv

SQL = "SELECT player.Player, Count(player.Player) AS TotalGames FROM player GROUP BY player.Player HAVING player LIKE '%playboys%' ORDER BY Count(player.Player) DESC;"
Avatar billede stigc Nybegynder
09. februar 2002 - 21:44 #2
mener det skal laves sådan. "having" bruges ikke her.

SQL = "SELECT player.Player, Count(player.Player) AS TotalGames FROM player WHERE player LIKE '%playboys%' GROUP BY player.Player ORDER BY Count(player.Player) DESC;"
Avatar billede erikjacobsen Ekspert
09. februar 2002 - 21:52 #3
er det ikke lidt smag og behag i dette tilfælde. Med WHERE kan du
checke alle felter, men med HAVING er det kun det/de felt/er der
i med i GROUP BY - (så vidt jeg husker).
Avatar billede stigc Nybegynder
09. februar 2002 - 22:06 #4
jo hvis man f.eks laver en SUM, så kun den der har en sum over 10 (having SUM(myFiled)>10).
Avatar billede akr21jb Nybegynder
09. februar 2002 - 22:09 #5
Det virkede perfekt, så du kunne sagtens have givet garanti. Tak for hjælpen.
Avatar billede stigc Nybegynder
09. februar 2002 - 22:09 #6
"myField" :)

Jeg vil tror at bruge WHERE vil være det hurtigste.
Avatar billede erikjacobsen Ekspert
09. februar 2002 - 22:11 #7
Ja, i eksemplet ovenfor ville vi kun kunne have brugt HAVING til

  ...HAVING TotalGames>10 ...

Jamen, selv tak, for en spændende lille opgave !
Avatar billede erikjacobsen Ekspert
09. februar 2002 - 22:12 #8
Tror du ikke den optimere de to udgaver til præcis det samme ? :)
Avatar billede stigc Nybegynder
09. februar 2002 - 22:17 #9
jeg ville tror at når man bruger having, kører den første GROUP BY. Dernæst kigger den på HAVING delen og frasorterer igen. Det kan da godt være at databasen har en intilligent optimizer, der kan gøre det i et huk.
Avatar billede akr21jb Nybegynder
09. februar 2002 - 22:24 #10
:) når nu det er så spændende opgave, har jeg et lille tillægsspørgsmål.

Hvad nu hvis man i samme sql gerne vil have eksluderet et navn ?

Altså find alle Playboys, eg. butte-playboys, flemse,playboys
men ekskluder cheater-playboys

Efternavnet er det samme, men jeg vil ikke have cheater på listen.
Kan det lade sig gøre ?
Avatar billede stigc Nybegynder
09. februar 2002 - 22:32 #11
SQL = "SELECT player.Player, Count(player.Player) AS TotalGames FROM player WHERE player<>'cheater-playboys' GROUP BY player.Player ORDER BY Count(player.Player) DESC;"
Avatar billede akr21jb Nybegynder
09. februar 2002 - 22:40 #12
Takker.
Hvis du giver et svar, kan jeg så give dig dine velfortjente points ?
Avatar billede stigc Nybegynder
09. februar 2002 - 22:43 #13
det er nu lige meget, spm. er også lukket. :)
Avatar billede akr21jb Nybegynder
09. februar 2002 - 22:48 #14
Ok, jammen så tak.
Men sql'en virkede ikke som planlagt.

SQL = "SELECT player.Player, Count(player.Player) AS TotalGames FROM player WHERE player<>'cheater-playboys' GROUP BY player.Player ORDER BY Count(player.Player) DESC;"

Viser godtnok alle undtagen Cheater-playboys,
men hvordan sætter jeg så WHERE player LIKE '%playboys%' ind i sætningen ?
Avatar billede stigc Nybegynder
09. februar 2002 - 22:56 #15
det behøver du heller ikke, det var bare din formulering i dit spm. der gjorde at vi svarede på den måde. Brug bare:

SQL = "SELECT player.Player, Count(player.Player) AS TotalGames FROM player WHERE player='playboys' GROUP BY player.Player ORDER BY Count(player.Player) DESC;"
Avatar billede akr21jb Nybegynder
09. februar 2002 - 23:04 #16
Du misforstår mig, eller også formulerer jeg mig dårligt. (sikkert det sidste)

I sql sætningen, skal jeg bruge BÅDE
WHERE player<>'cheater-playboys'
og
WHERE player LIKE '%playboys%'

Jeg skal have vist alle der har efternavnet playboys, undtaget cheater-playboys.
Avatar billede stigc Nybegynder
09. februar 2002 - 23:07 #17
ahh....

SQL = "SELECT player.Player, Count(player.Player) AS TotalGames FROM player WHERE player<>'cheater-playboys' AND player LIKE '%playboys%' GROUP BY player.Player ORDER BY Count(player.Player) DESC;"

Hvis du selv har lyst til at lære det bør du kigge på:

http://www.w3schools.com/sql/default.asp
Avatar billede akr21jb Nybegynder
09. februar 2002 - 23:54 #18
Takker, og takker for linken også.
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