Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Syntax (https://www.delphipraxis.net/149294-sql-syntax.html)

msickel 18. Mär 2010 08:53

Datenbank: MSSQL EXPRESS • Version: 2008 • Zugriff über: ODBC

SQL Syntax
 
Hallo

Da ich blutiger Anfänger bin was SQL Syntax angeht habe ich eine Frage an Euch.

Ich habe 3 Tabellen


Tabelle 1 folgende Felder

Name Januar Februar Maerz April Mai Juni Juli August


Tabelle 2 sieht so aus

Name WertJan

Tabelle 3

Name WertFeb


Nun möchte ich folgendes erreichen.

Tabelle 2 und 3 soll in Tabelle 1 migriert werden. Dabei soll der Name als gemeinsamer Nenner dienen d.h. sollte der Name schon existieren soll einfach der Wert in Tabelle 1 Januar bzw Februar geschrieben werden.
Existiert der Name nicht soll dieser zusätzlich angelegt werden mit dem entsprechenden Wert dazu.


Wie kann ich das als SQL Script umsetzten?

Vielen Dank für Euere Hilfe im Vorraus

Gruss Martin

ghost007 18. Mär 2010 08:57

Re: SQL Syntax
 
Hi, ich denke nicht dass es mit einem reinen SQL Statement zu machen ist. Du brauchst irgend ein Script oder Programm, welches dir die Datensätze zunächst ausliest und sie dann in dem gewünschten Format wieder einfügt.

joachimd 18. Mär 2010 09:07

Re: SQL Syntax
 
Zitat:

Zitat von msickel
Tabelle 1 folgende Felder
Name Januar Februar Maerz April Mai Juni Juli August

Tabelle 2 sieht so aus
Name WertJan

Tabelle 3
Name WertFeb

[...]
Tabelle 2 und 3 soll in Tabelle 1 migriert werden. Dabei soll der Name als gemeinsamer Nenner dienen d.h. sollte der Name schon existieren soll einfach der Wert in Tabelle 1 Januar bzw Februar geschrieben werden.
Existiert der Name nicht soll dieser zusätzlich angelegt werden mit dem entsprechenden Wert dazu.

Ich weiß jetzt nicht, ob µ$ MERGE unterstützt. Wenn ja, sollte es so gehen:

SQL-Code:
MERGE tabelle1 AS t1
USING tabelle2 AS t2
ON (t1.name=t2.name)
WHEN MATCHED THEN UPDATE SET t1.Januar=t2.WertJan
WHEN NOT MATCHED THEN INSERT (Name,Januar) VALUES (t2.Name, t2.WertJan)
Und dasselbe dann für Tabelle 2

msickel 18. Mär 2010 09:58

Re: SQL Syntax
 
Super, vielen Dank, funktioniert einandfrei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz