Seite 1 von 1

UPDATE-Anweisung mit Verknüpfung

Verfasst: Sa, 28.04.2007 20:30
von tarno
Hallo,

ich möchte die Spalte dblFinJanuar mit Daten aus der Tabelle tmpSummeMonat aktualisieren. Der Code lautet:

updfbjan = "UPDATE ""tblFinanzbericht"" " + _
"SET ""tblFinanzbericht"".""dblFinJanuar"" = ""tmpSummeMonat"".""dblReBetrag"" " + _
"FROM ""tblFinanzbericht"", ""tmpSummeMonat"" " + _
"WHERE ""tblFinanzbericht"".""fiFinPosition"" = ""tmpSummeMonat"".""fiRePosition"" " + _
"AND ""tmpSummeMonat"".""intReMonat"" = 1 "

objStatement.executeUpdate(updfbjan)

Im Ergebnis bekomme ich die Fehlermeldung, dass die Spalte tmpSummeMonat.dblReBetrag nicht gefunden wird, obwohl sie natürlich vorhanden ist.
Wenn ich anstelle von tmpSummeMonat.dblReBetrag einen fixen Wert eingebe, funktioniert es.
Ich habe schon in mehreren OOo- und SQL-Büchern nach einer Lösung gesucht, aber bisher nichts gefunden.
Habt ihr einen Tipp für mich?

Ich arbeite mit OOo 2.2.

Vielen Dank im Voraus.

Viele Grüße

Tarno

Verfasst: Fr, 04.05.2007 17:24
von komma4
Die "Spalte" wird nicht gefunden - oder der gesuchte Wert?
Tippfehler beim Spaltennamen?

gibt Dir eine MSGBOX tatsächlich den erwarteten Wert aus, sprich: was bekommst Du bei:

Code: Alles auswählen

SELECT dblReBetrag FROM tmpSummeMonat
irgendein Datentyp-Problem (Spalte nummerisch/double, Suche mit einer Zeichenkette und "angehängtem Leerzeichen")?

Verfasst: So, 06.05.2007 08:01
von tarno
Hallo Winfried,

ich habe das Problem in der Zwischenzeit gelöst. ANSI-SQL ist halt nicht Transact-SQL.

Ich musste den Wert für die Spalte "dblFinJanuar" per SELECT-Statement ermiiteln und habe dann gleich noch eine Funktion draus gemacht - daher die Variablen.

Code: Alles auswählen

	sql = 	"	UPDATE 	""tblFinanzbericht""  " + _
			"	SET ""tblFinanzbericht"".""" + feld + """ = (	SELECT	""SM"".""dblReBetrag"" " + _
															"	FROM 	""tmpSummeMonat"" AS ""SM"" " + _
															"	WHERE 	""SM"".""fiRePosition"" = ""tblFinanzbericht"".""fiFinPosition"" " + _
															"	AND 	""SM"".""intReJahr"" = " + jahr + _
															"	AND 	""SM"".""intReMonat"" = " + monat + " ) "
															
	updobjStatement.executeUpdate(sql)

Viele Grüße

Tarno