UPDATE-Anweisung mit Verknüpfung

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

tarno
Beiträge: 4
Registriert: Sa, 28.04.2007 20:03
Wohnort: Berlin

UPDATE-Anweisung mit Verknüpfung

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Beitrag 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")?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
tarno
Beiträge: 4
Registriert: Sa, 28.04.2007 20:03
Wohnort: Berlin

Beitrag 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
20'' Intel-Core 2 Duo-iMac, 2.16 GHz, 1 GB RAM mit OOo 2.2.1
-------------------------------------------------------------------------
Unser Leben ist, was unser Denken daraus macht (Marc Aurel).
Antworten