|
| Hjælp til Join-forbindelse Fra : Villy Moestrup |
Dato : 12-10-03 10:40 |
|
Hej
Hjælp til Join-Forbindelse -(jeg er nybegynder i databaser)
Jeg har 2 tabeller
Tabel 1 projektnr,ugenr og timeforbrug
Tabel 2 projektnr ,ugenr og materialeforbrug.
Jeg skal bruge en forespørgsel der henter data fra begge tabeller sorteret
pr uge og projektnr.
Jeg kan godt få det til at virke i de uger hvor der er timeforbrug.
Hvis der kun er materialeforbrug i en uge kommer projektnr ugenr og
materialeforbrug ikke med.
Hvordan skal JOIN-forbindelsen laves.
Projektnumrene er tekstfelter da de feks er 2003219-1 og 2003219-2 -kan det
være problemet?
Jeg bruger Access.
mvh Villy
| |
Jimmy (12-10-2003)
| Kommentar Fra : Jimmy |
Dato : 12-10-03 19:29 |
|
"Villy Moestrup" <moestrup@tdcspace.dk> wrote in message
news:3f892140$0$45330$edfadb0f@dread11.news.tele.dk...
> Hej
> Hjælp til Join-Forbindelse -(jeg er nybegynder i databaser)
> Jeg har 2 tabeller
> Tabel 1 projektnr,ugenr og timeforbrug
> Tabel 2 projektnr ,ugenr og materialeforbrug.
> Jeg skal bruge en forespørgsel der henter data fra begge tabeller
sorteret
> pr uge og projektnr.
Hvis du har projektnr og ugenr som primærnøgle i f.eks. materialeforbrug og
de samme nøgler i timeforbrug er fremmednøgler, vil følgende nok (Jeg er
vant til MySQL - ret mig hvis Access er anderledes) virke:
SELECT * FROM materialeforbrug
LEFT JOIN timeforbrug ON (materialeforbrug.projektnr = timeforbrug.projektnr
AND materialeforbrug.ugenr = timeforbrug.ugenr)
WHERE ...
Ovenstående kræver dog, at der *er* et materialeforbrug.
Alternativt kan du oprette en ekstra tabel - f.eks. projekt, der har nr som
primærnøgle (Jeg forestiller mig du allerede har den, men ikke skrevet det
her).
Så kan du hente alt fra den og joine de to ekstra tabeller på og derved
hente data, hvis der er noget.
> Projektnumrene er tekstfelter da de feks er 2003219-1 og 2003219-2 -kan
det
> være problemet?
Nej - det er fint.
Problemet er nok det jeg beskrev ovenfor.
Mvh
Jimmy
| |
Kristian Damm Jensen (13-10-2003)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 13-10-03 11:19 |
|
"Jimmy" <nyhedsgruppe2@get2net.danmark> skrev i en meddelelse
news:h3hib.1478$CR4.299@news.get2net.dk...
>
<snip>
> SELECT * FROM materialeforbrug
> LEFT JOIN timeforbrug ON (materialeforbrug.projektnr =
timeforbrug.projektnr
> AND materialeforbrug.ugenr = timeforbrug.ugenr)
> WHERE ...
>
> Ovenstående kræver dog, at der *er* et materialeforbrug.
Erstat LEFT med FULL, så er det problem løst. Jeg har til gengæld ingen
anelse om det kan lade sig gøre i Access. Understøtter Access full outer
join?
--
Kristian Damm Jensen
damm (at) ofir (dot) dk
| |
|
|