Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

SQL Abfrage

Anwender / 5 Antworten / Baumansicht Nickles

Hallo,


Habe folgendes Problem: Möchte Abfrage über 5 Tabellen erstellen. Situation: 4 Tabellen stehen in direkter Beziehung zur Mastertabelle (1-N) Wie muss ich nun den INNER JOIN in der  FROM Klausel zusammen setzten???


Vielen Dank für Eure Hilfe

bei Antwort benachrichtigen
T-Rex Anwender „SQL Abfrage“
Optionen

Wenn Du noch die Namen der Tabellen und die Namen der Felder postest, kannnst Du ein Beispiel haben.
Oder Du schaust Dir die Nordwind.mdb an, die bei MS Office mitinstalliert wird, dort sind jede Menge Beispiele dazu drin.

 GrüßeT-Rex 
bei Antwort benachrichtigen
Anwender Nachtrag zu: „SQL Abfrage“
Optionen

strSELECT = "SELECT a.Titel, a.Valor, b.Symbol, c.Branche, IIF(a.Favorit = True, 'Ja') AS Favorit, k.Kurs as [Aktueller Kurs] , " & _
"a.Kaufziel, a.IDAktie, IIF(k.Kurs
strFROM = "FROM ((tblAktie a LEFT JOIN tblBewertung b ON a.IDAktie = b.fIDAktie)LEFT JOIN tblRisiko r ON b.fIDRisiko = r.IDRisiko) " & _
"LEFT JOIN tblAttraktiv v ON b.fIDAttraktiv = v.IDAttraktiv (...............Weitere Verknüpfung?...........siehe unten)

strWHERE = "Where k.Datum = " & strAktuellstesDatum

strORDERBY = "ORDER BY a.Titel"



Weiter Verküpfungen:

tblAktie.IDAktie => tblBörse.fIDAktie
tblAktie.IDAktie => tblBranche.fIDAktie
tblAktie.IDAktie => tblKurs.fIDAktie

(Lösung mit INNER JOIN aber ergänzend zum bestehenden LEFT JOIN Syntax)

bei Antwort benachrichtigen
T-Rex Anwender „SQL Abfrage“
Optionen

strSELECT = "SELECT tblAktie.Titel, tblAktie.Valor, tblBewertung.Symbol, tblBranche.Branche, " & _
     "IIF(tblAktie.Favorit = True, 'Ja') AS Favorit, tblKurs.Kurs AS [Aktueller Kurs], " & _
     "tblAktie.Kaufziel, tblAktie.IDAktie, IIF(tblKurs.Kurs      "tblRisiko.Risikostufe, tblAttraktiv.[Attraktivität]"

strFROM = "FROM (((tblAktie LEFT JOIN tblBewertung ON tblAktie.IDAktie = tblBewertung.fIDAktie) " & _
     "LEFT JOIN tblRisiko ON tblBewertung.fIDRisiko = tblRisiko.IDRisiko) " & _
     "LEFT JOIN tblAttraktiv ON tblBewertung.fIDAttraktiv = tblAttraktiv.IDAttraktiv) " & _
     "INNER JOIN [tblBörse] ON tblAktie.IDAktie = [tblBörse].fIDAktie) " & _
     "INNER JOIN tblBranche ON tblAktie.IDAktie = tblBranche.fIDAktie) " & _
     "INNER JOIN tblKurs ON tblAktie.IDAktie = tblKurs.fIDAktie)"

' Â ACHTUNG! Amerikanisches Format (#mm/dd/yyyy#) wird erwartet, wenn es sich um ein
' Â Feld vom Datentyp Date handelt!
' Â Benutze 'Format$(DasDatum, "\#mm\/dd\/yyyy\#")'
strWHERE = "WHERE (tblKurs.Datum = " & strAktuellstesDatum & ")"

strORDERBY = "ORDER BY tblAktie.Titel ASC"
 GrüßeT-Rex 
bei Antwort benachrichtigen
Anwender Nachtrag zu: „SQL Abfrage“
Optionen

T-Rex, du bist der Grösste !!!
Musste einige Attribute und die Klammern am Anfang noch anpassen, aber dann hat es wunderbar funktioniert.
Bin dir sehr dankbar! Nun kann ich an meiner Projektarbeit weiterschreiben

Gruss Anwender

bei Antwort benachrichtigen
T-Rex Anwender „SQL Abfrage“
Optionen

Oh, danke. Hatte die Klammern vergessen, als ich die zusätzlichen Verknüpfungen dazukopiert hatte.

 GrüßeT-Rex 
bei Antwort benachrichtigen