Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

SQL und asp problem

logo_3 / 2 Antworten / Flachansicht Nickles

Hallo

ich habe eine verbindung aufgebaut in asp zu eine access DB. Eine einfache tabellarische Auflistung mit SELECT geht ohne probleme Wenn ich aber eine komplizierte Query mache dann bekomme ich eine Fehlermeldung. Error in der Klausel FROM

Was ist da bitte an der Query falsch
strSQL = "SELECT memo.datum, memo.memo FROM Kunden" <-so geht's
strSQL = "SELECT memo.datum, memo.memo FROM Kunden INNER JOIN memo ON Kunden.Name = 'Frank' " <- so geht's nicht


-----------------------------------------------------------------
<%
seleccion = Request.Form("name")
Dim oConn,strSQL, objRS

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &amp; Server.MapPath("data.mdb"))

strSQL = "SELECT memo.datum, memo.memo FROM Kunden"
strSQL= strSQL &amp; "INNER JOIN memo ON Kunden.Name = 'Frank' "
Set objRS = oConn.Execute(strSQL)

%>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR><TD> Datum</TD><TD>Kommentar</TD><%

while (not objRS.Eof)
Response.Write("<tr><td>&amp;nbsp;" &amp; objRS("datum") &amp; "</td><td>&amp;nbsp;" &amp; objRS("Memo") &amp; "</td><td>&amp;nbsp;</td></tr>")

objRS.MoveNext
wend

oConn.Close
set objRS = nothing
set oConn = nothing

%>
</table>
-----------------------------------------------------------------


danke im Vorraus

logo_3

bei Antwort benachrichtigen
xafford outsidaz „Eines vorweg, mein SQL-Lehrgang ist schon etwas länger her. Ich würde mir...“
Optionen

Ja, der Fehler liegt am JOIN, und zwar genauer gesagt im ON-Teil. Wenn man zwei Tabellen JOINen will, dann muss man der DB auch sagen, wie sie sie verbinden soll und das geht nunmal nicht, wenn man im ON-Clause nur das Feld einer Tabelle und einen Skalar angibt, der eigentlich in den WHERE-Teil soll.

Sofern memo auch ein Feld namens "Name" hat, dann sähe der Query so aus:

SELECT memo.datum, memo.memo FROM Kunden INNER JOIN memo ON Kunden.Name = memo.Name WHERE Kunde.Name = 'Frank'

Merke: Bei JOINs muss immer angegeben über welche Felder verknüpft werden soll.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen