Avatar billede bumle90 Nybegynder
11. december 2004 - 14:06 Der er 5 kommentarer og
1 løsning

join virker ikke. Sidder godt og grundigt fast

Hej, jeg har en model hvor jeg skal lave en række joins.
Jeg kan dog ikke få det til at virke helt godt.
Det der er meningen er at jeg har en bestillingstabel med nogle bestillingslinier. Jeg har nogle steder og nogle automater. Til hvert sted hører nogle automater. Til hver automat kan der være en række bestillingslinier. Der kan være være en eller flere bestillinger pr. sted, men en bestilling kan IKKE spænde over flere steder.

Jeg vil så gerne have alle steder med alle automater frem. Desuden vil jeg have de bestillingslinier der evt. er. Så hvis der er nogle steder uden bestilling, eller automater uden bestillingslinier skal de alligevel vises. Jeg har lavet følgende query i access builder (linkede tabeller), men følgende fejlmedd. fremkommer ved eksekvering....Hvad gør jeg galt?


SQL:
SELECT VEGAS_2_TA_STED.STED_NAVN
FROM ((VEGAS_2_TA_WWW_BESTIL_AUT INNER JOIN VEGAS_2_TA_YDELSE ON VEGAS_2_TA_WWW_BESTIL_AUT.YDELSE_NR = VEGAS_2_TA_YDELSE.YDELSE_NR) INNER JOIN VEGAS_2_TA_WWW_BESTIL ON VEGAS_2_TA_WWW_BESTIL_AUT.BESTIL_NR = VEGAS_2_TA_WWW_BESTIL.BESTIL_NR) RIGHT JOIN (((((VEGAS_2_TA_FABR INNER JOIN (VEGAS_2_TA_AUTOMAT INNER JOIN VEGAS_2_TA_ELKTR ON VEGAS_2_TA_AUTOMAT.ELKTR_NR = VEGAS_2_TA_ELKTR.ELKTR_NR) ON VEGAS_2_TA_FABR.FABR_NR = VEGAS_2_TA_ELKTR.FABR_NR) INNER JOIN VEGAS_2_TA_KAB ON VEGAS_2_TA_AUTOMAT.KAB_NR = VEGAS_2_TA_KAB.KAB_NR) INNER JOIN VEGAS_2_TA_PROG_VERS ON VEGAS_2_TA_AUTOMAT.PROG_NR = VEGAS_2_TA_PROG_VERS.PROG_NR) INNER JOIN (VEGAS_2_TA_AUT_ART INNER JOIN VEGAS_2_TA_AUT_NAVN ON VEGAS_2_TA_AUT_ART.AUT_ART_NR = VEGAS_2_TA_AUT_NAVN.AUT_ART_NR) ON VEGAS_2_TA_AUTOMAT.AUT_NAVN_NR = VEGAS_2_TA_AUT_NAVN.AUT_NAVN_NR) INNER JOIN VEGAS_2_TA_STED ON VEGAS_2_TA_AUTOMAT.STED_NR = VEGAS_2_TA_STED.STED_NR) ON (VEGAS_2_TA_WWW_BESTIL_AUT.AUT_NR = VEGAS_2_TA_AUTOMAT.AUT_NR) AND (VEGAS_2_TA_WWW_BESTIL.STED_NR = VEGAS_2_TA_STED.STED_NR);

Fejlmedd:
The sql statement could not be executed because it contains ambiguous outer joins. To force one of the joins to be performed first, create a seperate query that performs the first join and then include that query in your SQL statement
Avatar billede bumle90 Nybegynder
11. december 2004 - 14:13 #1
Jeg sender gerne en grafisk oversigt over relationerne hvis det gør det nemmere.
mvh.
Avatar billede bumle90 Nybegynder
11. december 2004 - 14:27 #2
Her er samme SQL, bare lidt mere overskuelig. Har fjernet nogle af ekstra-tabellerne...Det er disse 4 tabeller problemet drejer sig om:

SELECT VEGAS_2_TA_AUTOMAT.AUT_SER_NR
FROM ((VEGAS_2_TA_WWW_BESTIL_AUT INNER JOIN VEGAS_2_TA_WWW_BESTIL ON VEGAS_2_TA_WWW_BESTIL_AUT.BESTIL_NR = VEGAS_2_TA_WWW_BESTIL.BESTIL_NR) RIGHT JOIN VEGAS_2_TA_AUTOMAT ON VEGAS_2_TA_WWW_BESTIL_AUT.AUT_NR = VEGAS_2_TA_AUTOMAT.AUT_NR) INNER JOIN VEGAS_2_TA_STED ON VEGAS_2_TA_AUTOMAT.STED_NR = VEGAS_2_TA_STED.STED_NR;
Avatar billede bumle90 Nybegynder
11. december 2004 - 14:27 #3
Men altså samme fejlmeddelse...i begge SQL, da det essentielt er samme SQL kogt lidt ned
Avatar billede bumle90 Nybegynder
11. december 2004 - 14:47 #4
Og endnu mere simplificeret...Det kan snart ikke koges mere ned...Men kan ikke se hvad jeg gør galt...

SELECT VEGAS_2_TA_STED.STED_NAVN, VEGAS_2_TA_WWW_BESTIL.BESTIL_NR
FROM VEGAS_2_TA_WWW_BESTIL_AUT INNER JOIN (VEGAS_2_TA_WWW_BESTIL RIGHT JOIN VEGAS_2_TA_STED ON VEGAS_2_TA_WWW_BESTIL.STED_NR = VEGAS_2_TA_STED.STED_NR) ON VEGAS_2_TA_WWW_BESTIL_AUT.BESTIL_NR = VEGAS_2_TA_WWW_BESTIL.BESTIL_NR;
Avatar billede bumle90 Nybegynder
11. december 2004 - 15:56 #5
Det må der da være nogle der kan gennemskue?
Avatar billede bumle90 Nybegynder
11. december 2004 - 16:32 #6
åbenbart ikke...Så var det heldigt jeg selv fandt ud af det...lukker
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
Computerworld tilbyder specialiserede kurser i database-management

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