[SQL] LEFT JOIN (Access)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben nu al een aardig tijdje bezig om de relaties in een query te samen krijgen. Ik heb een query waarbij ik meerdere tabellen wil samenbrengen. Nu zit ik vast op het leggen van een LEFT JOIN van tblRelatie op de laatste tabel "tblFactuurnummer".

code:
1
2
3
4
5
6
7
FROM 

(((tblGrootboek AS g 
 INNER JOIN (tblJournaalPost AS jp 
  INNER JOIN tblJournaalPostRegel AS jpr ON jp.fldJournaalPostID = jpr.fldJournaalPostID) ON g.fldGrootboekID = jpr.fldGrootboekID) 
  INNER JOIN tblGrootboek ON jpr.fldGrootboekID = tblGrootboek.fldGrootboekID)
 LEFT JOIN tblFactuurNummer as fn ON jpr.fldFactuurNummerID = fn.fldFactuurNummerID)


Zelf had ik de volgende query bedacht, maar dan krijg ik in Access de melding dat er een syntax error is in de SQL code:

code:
1
2
3
4
5
6
7
8
9
FROM 

(((tblGrootboek AS g 
 INNER JOIN (tblJournaalPost AS jp 
  INNER JOIN tblJournaalPostRegel AS jpr ON jp.fldJournaalPostID = jpr.fldJournaalPostID) ON g.fldGrootboekID = jpr.fldGrootboekID) 
  INNER JOIN tblGrootboek ON jpr.fldGrootboekID = tblGrootboek.fldGrootboekID)
 ((LEFT JOIN tblFactuurNummer as fn ON jpr.fldFactuurNummerID = fn.fldFactuurNummerID)
LEFT JOIN tblRelatie ON r.fldRelatieID = fn.fldRelatieID)
)


Kan iemand mij verder helpen?

Acties:
  • 0 Henk 'm!

Verwijderd

tblFactuurNummer? Daar gaat een rode vlag omhoog
Wat zit er in die tabel?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:44

gorgi_19

Kruimeltjes zijn weer op :9

Wat wil je bereiken uiteindelijk? En ga je niet de mist in aangezien je een alias van tblGrootBoek hebt gemaakt?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • BertS
  • Registratie: September 2004
  • Laatst online: 14-04 17:14
Access kan niet goed overweg met een mix van left en inner joins. Als je ze allemaal naar left zet werkt het wel waarschijnlijk. De resultaten blijven gelijk als ik het zo even bekijk en de SnelStart database kennend.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
BertS schreef op zaterdag 24 maart 2012 @ 08:39:
Access kan niet goed overweg met een mix van left en inner joins. Als je ze allemaal naar left zet werkt het wel waarschijnlijk. De resultaten blijven gelijk als ik het zo even bekijk en de SnelStart database kennend.
De resultaten blijven niet perse gelijk natuurlijk, maar ik ken de SnelStart database niet eigenlijk. Hoe zit het wel?
You can also nest JOIN statements using the following syntax:

SELECT fields FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOIN [( ]tablex [INNER JOIN …)] ON table3.field3 compopr tablex.fieldx)] ON table2.field2 compopr table3.field3) ON table1.field1 compopr table2.field2;

A LEFT JOIN or a RIGHT JOIN may be nested inside an INNER JOIN, but an INNER JOIN may not be nested inside a LEFT JOIN or a RIGHT JOIN.
Deze query kun je dus prima zo opschrijven dat het wel werkt. De left-join naar binnen halen.

Ik snap trouwens ook het databasemodel/deze query niet echt. Ik zou de volgende volgorde verwachten eigenlijk:
Grootboek -> GrootboekRekening -> JournaalPostRegel -> JournaalPost -> Factuur (Nummer is akelig als naam voor een tabel). Hoe het model hier werkt, en waarom er 2x op Grootboek gejoined wordt met hetzelfde id snap ik niet echt. ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten