CruellaDeVille Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 Jeg har en tabell barnehage. Den har en kapasitet (int), jeg har en tabell som holder styr på hvilke barn som går i hvilken barnehage, barnehageID | barn-identifikator Så skal jeg forsøke å finne ut om barnehage x har ledig kapasitet (dvs det er færre barn som går i barnehagen enn kapasiteten tillater) Jeg har lyst å gjøre dette med en spørring, og lurer på om det er mulig. Jeg har laget noe slikt som denne String sql = "select capacity - (select count(childSSN) as no from coverage) as capacity from kinderg where kid = " + k.getID(); men den gir kapasitet - alle barn som har barnehageplass i alle barnehager, og det er ikke det jeg ønsker. Noen som har noen tips? Må jeg virkelig bruke to spørringer? Lenke til kommentar
Frank2004 Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 Jeg har en tabell barnehage. Den har en kapasitet (int), jeg har en tabell som holder styr på hvilke barn som går i hvilken barnehage, barnehageID | barn-identifikator Så skal jeg forsøke å finne ut om barnehage x har ledig kapasitet (dvs det er færre barn som går i barnehagen enn kapasiteten tillater) Jeg har lyst å gjøre dette med en spørring, og lurer på om det er mulig. Jeg har laget noe slikt som denne String sql = "select capacity - (select count(childSSN) as no from coverage) as capacity from kinderg where kid = " + k.getID(); men den gir kapasitet - alle barn som har barnehageplass i alle barnehager, og det er ikke det jeg ønsker. Noen som har noen tips? Må jeg virkelig bruke to spørringer? 6142041[/snapback] Count, sum, osv. brukes som regel sammen med "group by". Lykke til. Lenke til kommentar
roac Skrevet 20. mai 2006 Del Skrevet 20. mai 2006 For ikke å snakke om at joins som regel er mer effektivt enn subqueries. Lenke til kommentar
CruellaDeVille Skrevet 21. mai 2006 Forfatter Del Skrevet 21. mai 2006 For ikke å snakke om at joins som regel er mer effektivt enn subqueries. 6144041[/snapback] Men dette er en negasjonsjoin. Altså - velg alle søknader MINUS de søknadene som også er registrert i har-barnehageplass-listen. Kan jeg løse dette med en join? Lenke til kommentar
roac Skrevet 21. mai 2006 Del Skrevet 21. mai 2006 (endret) Kan jeg løse dette med en join? 6147345[/snapback] Ikke noe problem. Sjekk dette kodeeksempelet laget i MSSQL: create table a ( id int, capacity int ); go create table b ( id int identity, aid int ); go insert into a values (1,5); insert into a values (2,7); go insert into b values (1); insert into b values (2); insert into b values (1); insert into b values (2); insert into b values (1); go select a.id, a.capacity-(select count(id) from b where b.aid = a.id) from a; go select a.id, a.capacity-count(b.id) from a inner join b on (a.id = b.aid) group by a.id, a.capacity Du kan jo selv teste de to spørringene her, og se at de returnerer det samme resultatet. Mao: Ja, du kan bruke join. Endret 21. mai 2006 av roac 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å