Skitta Skrevet 12. november 2007 Del Skrevet 12. november 2007 (endret) Har en skoleinnlevering hvor eg nå sitter helt fast på siste oppgaven. Den lyder slik: "Du skal finne alle løpere som har deltatt på alle løp i 2006". De 4 tabellene jeg har er: DELTAGER, KLUBB, LOP, RESULTAT. Variablene i tabellene: LOP : NR, ARRANGORKLUBB, TID og STED. KLUBB : NAVN, KONTAKTPERSON, EPOST DELTAGER: ID, NAVN, KLUBB, KJONN, KLASSE RESULTAT : LOPERID, LOPNR, MINUTT, SEKUND Prøvde slik: Select Navn from DELTAGER, LOP, RESULTAT where Lopnr=Nr AND LoperId=Id AND Dato like '___6______'; //formatet på datoen er 2006-10-10 Fikk da ut alle som hadde deltatt i minst et løp. De som hadde deltatt i flere løp kom flere ganger. Prøvde med distinct, og da kom alle en gang, men jeg skal kun ha de som var med i alle løp. Noen gode forslag? Endret 12. november 2007 av Skitta Lenke til kommentar
roac Skrevet 12. november 2007 Del Skrevet 12. november 2007 Opptil flere. For det første: Lær deg å bruke join operator i steden for å bruke den utdaterte måten du benytter. Et eksempel: from tabell1 a inner join tabell2 b on (a.id = b.id) Videre så kan det være en idé å se på aggregeringer, hvilke(n) du kan bruke burde være greit for deg å finne ut selv. Lenke til kommentar
Skitta Skrevet 12. november 2007 Forfatter Del Skrevet 12. november 2007 Opptil flere. For det første: Lær deg å bruke join operator i steden for å bruke den utdaterte måten du benytter. Et eksempel: from tabell1 a inner join tabell2 b on (a.id = b.id) Videre så kan det være en idé å se på aggregeringer, hvilke(n) du kan bruke burde være greit for deg å finne ut selv. Du har ikke et forslag til hva eg kan skrive da? Utifra de opplysningene eg har gitt... Lenke til kommentar
roac Skrevet 12. november 2007 Del Skrevet 12. november 2007 Hallo? Skal du ikke lære noe også? Jeg har gitt deg en pekepinn om hva du skal se på, det minste jeg forlanger er at du gidder å prøve selv. Når du så har faktisk har forsøkt og evt ikke fått det til kan jeg/vi gi flere hint. Lenke til kommentar
Skitta Skrevet 12. november 2007 Forfatter Del Skrevet 12. november 2007 Hallo? Skal du ikke lære noe også? Jeg har gitt deg en pekepinn om hva du skal se på, det minste jeg forlanger er at du gidder å prøve selv. Når du så har faktisk har forsøkt og evt ikke fått det til kan jeg/vi gi flere hint. Poenget er jo at jeg ikke har hatt om aggregeringer enda. Og lærer denne "gamle" metoden som jeg skriver no. Så skjønner ikke helt ka du mener jeg skal gjøre. Lenke til kommentar
Manfred Skrevet 12. november 2007 Del Skrevet 12. november 2007 I tillegg var vel denne ganske grisestygg: AND Dato like '___6______' Bruk heller datepart: AND DATEPART(yy,Dato) = 2006 Lenke til kommentar
Skitta Skrevet 12. november 2007 Forfatter Del Skrevet 12. november 2007 (endret) I tillegg var vel denne ganske grisestygg: AND Dato like '___6______' Bruk heller datepart: AND DATEPART(yy,Dato) = 2006 Fikk det til slutt til. Slik ble koden: Select Navn from DELTAGER where(select count( Navn ) from RESULTAT,LOP where id=loperid and nr=lopnr and dato like '2006______') >= ALL (select count( nr ) from LOP where dato like '2006______'); Skal teste og se om det du sa ang. datepart virker også. Om folk har forslag til en bedre kode så er det bare å komme med den.. Endret 12. november 2007 av Skitta Lenke til kommentar
roac Skrevet 12. november 2007 Del Skrevet 12. november 2007 Poenget er jo at jeg ikke har hatt om aggregeringer enda. Og lærer denne "gamle" metoden som jeg skriver no. Så skjønner ikke helt ka du mener jeg skal gjøre. Hvis du lærer det, så krev pengene tilbake. Du bør kunne forlange at lærerne dine kan det de holder på med. Ang aggregeringer så burde denne siden være dekkende: MySQL Group By Functions. Du er sikker på at du aldri har vært borti max(), min() og så videre? Lenke til kommentar
Skitta Skrevet 12. november 2007 Forfatter Del Skrevet 12. november 2007 Poenget er jo at jeg ikke har hatt om aggregeringer enda. Og lærer denne "gamle" metoden som jeg skriver no. Så skjønner ikke helt ka du mener jeg skal gjøre. Hvis du lærer det, så krev pengene tilbake. Du bør kunne forlange at lærerne dine kan det de holder på med. Ang aggregeringer så burde denne siden være dekkende: MySQL Group By Functions. Du er sikker på at du aldri har vært borti max(), min() og så videre? Dette er jo bare en liten del av pensum i Databaser 1. Som vi nå har hatt helt på slutten. Må jo lære grunnleggende ting først.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå