Avatar billede amirkarampour Nybegynder
04. december 2002 - 15:07 Der er 6 kommentarer og
1 løsning

True / False / ingen record i form for Join

Jeg er stødt på lidt af et problem med at lave en rigtig SQL-sætning.

Jeg har 2 database-tabeller:
1) personer
2) ansættelsesperioder (indeholder bl.a. feltet "ansat" som er true/false-værdier for om personen på nuværende tidspunkt er ansat eller ej)

"ansat"-feltet forstås sådan:
True = personen er nu ansat
False = personen er tidl. ansat
ingen record = aldrig ansat

Jeg vil gerne kunne søge på:
1) alle personer (uanset om de er ansatte, tidl. ansatte eller aldrig ansatte)
2) kun ansatte
3) kun tidl. ansatte
4) kun ansatte og tidl. ansatte
5) aldrig ansatte

På søgeresultatets liste skal der udfor personen stå om personen er ansat/tidl. ansat/aldrig ansat

Håben nogen kan hjælpe med sådanne SQL-sætninger og at jeg har formuleret det forståeligt nok - ellers må I meget gerne spørge :)
Avatar billede stormlic Nybegynder
04. december 2002 - 15:13 #1
Har ansættelsesperioder-tabellen en kollonne med et id til personer-tabellen?
Avatar billede stormlic Nybegynder
04. december 2002 - 15:13 #2
kan du ikke lige skrive hvad dine kollonner i begge tabeller heder ?
Avatar billede dk_akj Nybegynder
04. december 2002 - 15:14 #3
1:  select * from personer
2:  select * from personer, ansat where personer.personid = ansat.personid and ansat.ansat = true
3:  select * from personer, ansat where personer.personid = ansat.personid and ansat.ansat = false
4:  select * from personer, ansat where personer.personid = ansat.personid
5: select * from ansat where personid not in (select personid from personer)

Forudsat at de 2 tabeller hedder hhv personer og ansat og at der er et felt i begge tabeller som hedder personid.

//akj
Avatar billede stormlic Nybegynder
04. december 2002 - 15:14 #4
..lige mine ord ;)
Avatar billede amirkarampour Nybegynder
04. december 2002 - 15:15 #5
personer : ID (autonumber, primary key)
ansættelsesperioder : ID (number), ansatID (autonumber, primary key), ansat (true/false)
Avatar billede amirkarampour Nybegynder
04. december 2002 - 15:28 #6
Hmm... kan det passe det virkelig er så simpelt?

Problemet er at der kan være mange ansættelsesperioder til den samme person, så nogle records i "ansat" kan være True og samtidigt kan nogle være False.

På søgeresultatets liste skal der udfor personen stå om personen er ansat/tidl. ansat/aldrig ansat - hvordan gør jeg det?
Avatar billede dk_akj Nybegynder
04. december 2002 - 16:17 #7
Så skal du lave noget med at loppe gennem dine personer og for hver person så checke ansættelsesperioder for de enkelte personer.

//akj
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