Jag har problem med att få SQL anropen mit en Oracle databas att fungera, när jag anropar en tabell fungerar det, men när jag skall JOINa flera tabeller så far jag inte det att fungera.
Hur skall man JOINa tabeller vid anrop till en Oracle databas?
4 svar · 335 visningar · startad av Faramir
Jag har problem med att få SQL anropen mit en Oracle databas att fungera, när jag anropar en tabell fungerar det, men när jag skall JOINa flera tabeller så far jag inte det att fungera.
Hur skall man JOINa tabeller vid anrop till en Oracle databas?
Det beror på vilken version det är. Version 9 har stöd för join i from-listan vilket version 8 inte har. Om det är version 8 så får du ange join i where-delen.
Kan du ge något exempel på hur du skriver och vilket fel du får?
Det är version 8.
Nu har jag inte koden hemma, jag skriver in det viktigaste från ett utdrag som jag har liggande, finns många olika alternativ som jag har försökt med...
Jag gjorde ursrunglingen en design i Access och skapade där SQL frågan, sedan har jag provat ändra en del mm.
St = "Provider=MSDAORA; Data Source=OraLB; User ID=ULB; Password=Upwd"
Set cnn= Server.CreateObject("ADODB.Connection")
Set rs= CreateObject("ADODB.RecordSet")
Cnn.Open St
SQL= "SELECT DISTINCTROW [ARCHIVE].[NUMBER], [ARCHIVE].[DATE_TIME], [ARCHIVE].[PCODE], [PARAMETER].[RESULT], [PARAMETER].[PCODE] "
SQL= SQL & "FROM (ARCHIVE INNER JOIN PARAMETER ON [ARCHIVE].[PCODE] = [PARAMETER].[PCODE]"
Jag joinar 3 tabeller och betydligt fler fält, men du bör se hur jag har försökt iaf...
Det var en del accessspecifika saker
SQL= "SELECT distinct ARCHIVE.""NUMBER"", ARCHIVE.DATE_TIME, ARCHIVE.PCODE, ""PARAMETER"".RESULT, ""PARAMETER"".PCODE "
SQL= SQL & "FROM ARCHIVE, ""PARAMETER"" where ARCHIVE.PCODE = ""PARAMETER"".PCODE"
Number är ett reserverat ord i Oracle så det är inte bra som kolumnnamn, därför anger jag det som "NUMBER" i select-frågan. Parameter är också reserverat.
Om du vill joina fler tabeller så är det bara att lägga till dom i from-listan coh fylla på med villkor i where-delen.
Ok, jag förkortade de olika fältens namn, pga att de är så långa, tex det angina number fältet heter egentligen [KCA_ARCHIVE_RES_EXP].[SAMPLE_NUMBER]...