wazidMedlem sedan maj 2001166 inlägg
Hej
Jag har ett problem med att joina två tabeller.
Om jag tex har en tabell med alla medlemmar.
Sedan har jag en tabell med alla hus.
I tabellen hus finns ett fält som står för kopplingen till räknaren i medlemstabellen.
En medlem kan ha flera hus, samt det finns medlemmar utanhus.
Om jag kör en join så får jag ut recordset med medlemmar med hus.
Men hur gör jag för att få ut ett resultat där alla medlemmar är med och till dem eventuella hus?
MvH
David
LarsGMedlem sedan dec. 200012 465 inlägg
Använd left outer join istf inner join.
wazidMedlem sedan maj 2001166 inlägg
Hej LarsG
Det funkade i just detta fallet. En Accessdatabas med två tabeller.
Glad i hågen gick jag på en annan gammal surdeg där jag trodde mig kunna lösa det på liknande sätt, men tji fick jag.
SELECT Huvudtabell.*, OAGRPR.OLAGPR, OAGRPR.OLQTYL, Undertabell.ID_under, Undertabell.Artnr, Undertabell.Forpstl, Undertabell.Enhet,
Undertabell.Ant_forp, Huvudtabell.Url_txt, Huvudtabell.Url
FROM Undertabell INNER JOIN
Huvudtabell ON Undertabell.MainID = Huvudtabell.ID INNER JOIN
OAGRPR ON Undertabell.Artnr = OAGRPR.OLITNO
WHERE (Undertabell.Status < 90) AND (OAGRPR.OLCUNO = '00101 ') AND (Huvudtabell.Produktgrupp = '31') AND (OAGRPR.OLSTDT = '20020815')
ORDER BY Undertabell.Forpstl
Ovan ser man koden.
Mitt problem är att jag vill få ut alla poster från Undertabell, även de som inte har en koppling i OAGRPR.
Har här försökt med LEFT OUTER JOIN, men utan att lyckas.
Jag vore tacksam för lite hjälp på vägen.
MvH
David
LarsGMedlem sedan dec. 200012 465 inlägg
Access är ju väldigt speciellt om man har flera join. En sak är att det är meningslöst att sätt villkor på den högra tabellen i where eftersom det innebär att man tar bort alla poster som är null, dvs de som inte matchar.
SELECT Huvudtabell.*,
OAGRPR.OLAGPR,
OAGRPR.OLQTYL,
Undertabell.ID_under,
Undertabell.Artnr,
Undertabell.Forpstl,
Undertabell.Enhet,
Undertabell.Ant_forp
FROM (Undertabell INNER JOIN Huvudtabell
ON (Undertabell.MainID = Huvudtabell.ID ) ) left outer JOIN OAGRPR
ON ( Undertabell.Artnr = OAGRPR.OLITNO
AND OAGRPR.OLCUNO = '00101 '
AND OAGRPR.OLSTDT = '20020815')
WHERE Undertabell.Status < 90
AND Huvudtabell.Produktgrupp = '31'
ORDER BY Undertabell.Forpstl
wazidMedlem sedan maj 2001166 inlägg
Fantastiskt!
Det fungerar - Bugar och bockar!