Merge Befehl macht mich strubbelig

Alles zum SQL-Dialekt

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Merge Befehl macht mich strubbelig

Beitrag von Manfred »

Dieser Befehl:

Code: Alles auswählen

merge mandanten kd using(select * from fahrscheindruckdb.mandanten) kdalt
ON (kd.name=kdalt.name and kd.vorname=kdalt.vorname and kd.gebdat=kdalt.gebdat and kd.strasse=kdalt.strasse and kd.plz=kdalt.plz)
WHEn NOT matched then insert (gebdat,
	 	 		 	  		  idgeschlecht,
							  idschule,
							  klasse,
							  name,
							  vorname,
							  ort,
							  plz,
							  strasse)
sollte eigentlich die Sätze übernehmen, die nicht in der Tabelle sind. macht er auch. Aber jedesmal aufs neue, wenn er aufgerufen wird und immer wieder die gleichen Sätze. Was mache ich da falsch? Also es werden immer wieder und nur die gleichen Sätze angefügt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Merge Befehl macht mich strubbelig

Beitrag von nightcrawler »

da fehlt was

Code: Alles auswählen

WHEN NOT MATCHED INSERT (...feldliste...) VALUES (...werteliste...) 
Beispiel aus der Hilfe

Code: Alles auswählen

MERGE TableA AS ta
USING TableB AS tb
ON ( ta.ID = tb.ID )
WHEN MATCHED THEN
UPDATE SET ta.value = tb.value
WHEN NOT MATCHED THEN
INSERT VALUES ( tb.ID, tb.value )
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Merge Befehl macht mich strubbelig

Beitrag von Manfred »

Quark,
ich habe nicht alles kopiert. Hier der richtige Befehl

Code: Alles auswählen

merge mandanten kd using(select * from fahrscheindruckdb.mandanten) kdalt
ON (kd.name=kdalt.name and kd.vorname=kdalt.vorname and kd.gebdat=kdalt.gebdat and kd.strasse=kdalt.strasse and kd.plz=kdalt.plz)
WHEn NOT matched then insert (kdalt.gebdat,
	 	 		 	  		  kdalt.idgeschlecht,
							  kdalt.idschule,
							  kdalt.klasse,
							  kdalt.name,
							  kdalt.vorname,
							  kdalt.ort,
							  kdalt.plz,
							  kdalt.strasse) 
Values (gebdat,
	    idgeschlec,
		idschule,
		klasse,
		name,
		vorname,
		ort,
		plz,
		strasse)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Merge Befehl macht mich strubbelig

Beitrag von Manfred »

verdammt, ich glaube ich habe das Problem gefunden. Es liegt am Gebdat. Das ist in der Sourcetabelle leer. Ich vermute mal, da wird NULL drin stehen. Immer wieder diese blöden Fallen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Merge Befehl macht mich strubbelig

Beitrag von nightcrawler »

verdreht...insert (id) values (kdalt.id)...
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Merge Befehl macht mich strubbelig

Beitrag von Manfred »

so hatte ich das auch. Habe nur mal wieder verkehrt kopiert.
aber was muß ich jetzt mit dem gebdat machen, damit der Befehl richtig ausgeführt wird. Es passiert nur bei den Sätzen mit leerem gebdat.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Merge Befehl macht mich strubbelig

Beitrag von nightcrawler »

Manfred,
wenn es in der Source-Tabelle leer ist, dann vergleiche nicht darauf.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Merge Befehl macht mich strubbelig

Beitrag von Manfred »

in der SOurcetabelle sind nur ein paar leer. Und bei denen verschluckt er sich immer.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Merge Befehl macht mich strubbelig

Beitrag von UliTs »

Statt
kd.gebdat=kdalt.gebdat
setze
(kd.gebdat=kdalt.gebdat or empty(kdalt))
(oder so ähnlich) ein.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Merge Befehl macht mich strubbelig

Beitrag von Manfred »

ok, ich hatte erst schon vermutete, es gäbe da was SQL spezifisches.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Merge Befehl macht mich strubbelig

Beitrag von nightcrawler »

IS NULL
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Merge Befehl macht mich strubbelig

Beitrag von Manfred »

ja, es klingelt wieder.
Bei der Targettabelle hatte ich schon einen Default Wert gesetzt, aber bei der Sourcetabelle war das nicht der fall.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Merge Befehl macht mich strubbelig

Beitrag von Marcus Herz »

Was setzt du den bei GebDat (offensichtlich Geburtstag) als Default Wert ? :D
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Merge Befehl macht mich strubbelig

Beitrag von UliTs »

ich nehme da immer den 31.12.1899 als Default-Wert.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Merge Befehl macht mich strubbelig

Beitrag von Marcus Herz »

- Meine Nachbarin wurde am 31.12.1899 geboren, ist erst in diesem Jahrhundert verstorben...

Ich bin da sehr restriktiv und verwende keine ungültigen Default Werte, nur um ein NULL Problem zu umgehen. So was holöt einen schnell wieder ein.
z.B. muss ich in den Anzeigen ja eingreifen und das Datum unterdrücken.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Antworten