![]() |
Datenbank: Interbase • Version: 6 • Zugriff über: dbexpress
Daten von einer Tabelle in eine andere schreiben
Hallo,
Ich habe ein kleines Problem mit einer Interbase Datenbank. Ich habe zwei Tabellen, die ich irgendwie verknüpfen möchte, habe es auch schon mit Mastersource versucht, aber es hat irgendwie nicht funktioniert. Nun zu meinen zwei Tabellen: Tabelle A id (Primärschlüssel) Anrede Vorname Name Strasse Wohnort Tabelle B id (Primärschlüssel) Anrede Nachname . . . Ich möchte jetzt nach Möglichkeit, dass die Daten der Felder Anrede und Vorname von Tabelle A automatisch in die Felder von Tabelle B übernommen werden, bzw. angezeigt werden. Wie bekomm ich das hin? |
Re: Daten von einer Tabelle in eine andere schreiben
Zitat:
Dein Problem bedarf noch zusätzlicher Erläuterungen:
SQL-Code:
Eine Lösung für die gemischte Anzeige:
SELECT * FROM TabelleA
UNION SELECT * FROM TabelleB
SQL-Code:
Eine Lösung für die Datenübernahme:
SELECT a.Anrede, a.Vorname, a.Nachname, b.Vorname, b.Nachname
FROM TabelleA a JOIN TabelleB b ON a.id = b.id
SQL-Code:
Dies funktioniert (getestet mit IBExpert). Es könnte auch sein, dass der Ausführungsplan gut genug läuft; es könnte aber sicher noch Besseres geben.
UPDATE TabelleA a
SET a.Vorname = (SELECT b.Vorname FROM TabelleB b where a.id = b.id), a.Nachname = (SELECT b.Nachname FROM TabelleB b where a.id = b.id) Gruß Jürgen PS. Bitte um Entschuldigung: ich habe die Codes nur einfach so hingeschrieben. |
Re: Daten von einer Tabelle in eine andere schreiben
Danke für die Antwort. Mein Problem ist damit aber leider noch nicht gelöst, denn wenn ich den Code für die gemischte Anzeige oder den für die Datenübernahme nutze, kommt immer das als Fehlermeldung:
Zitat:
P.S. Beide Tabellen sind in der gleichen Datenbank. P.P.S. Ich nutze den ![]() |
Re: Daten von einer Tabelle in eine andere schreiben
Zitat:
Mir fallen folgende Möglichkeiten ein: * Das Tabellenkürzel a fehlt. * In Deinem ersten Beitrag heißt bei TabelleA das Feld 'Name' und nicht 'Nachname'. Vielleicht hilft die Fehlersuche in dieser Richtung. Gruß Jürgen |
Re: Daten von einer Tabelle in eine andere schreiben
Zitat:
Zum besseren Verständnis hier nochmal die genaue Struktur der Tabellen und mein ausgeführter Befehl. Vielleicht wird daraus mein Fehler ja ersichtlicher, denn ich finde ihn nicht. Tabelle A (heißt eigendlich Lehrer, hatte sie nur der Einfachheit halber A genannt) ID (Primärschlüssel) Anrede Vorname Nachname Adresse Postleitzahl Wohnort Tabelle B (heißt eigendlich Montag) ID (Primärschlüssel) Anrede Nachname 1. Std 2. Std 3. Std ... 9. Std. Ich hatte jetzt versucht die Update Anweisung mit den Angepassten Daten auszuführen, also
SQL-Code:
Dabei gab er mit dann den oben genannten Fehler zurück. Die Schreibweisen der Felder sind richtig, ich habe sie doppelt überprüft! Ich weiß wirklich nicht was der Fehler sein kann.
UPDATE MONTAG a
SET a.Anrede = (SELECT b.Anrede FROM "Lehrer" b where a.id = b.id), a.Nachname = (SELECT b.Nachname FROM "Lehrer" b where a.id = b.id) |
Re: Daten von einer Tabelle in eine andere schreiben
Danke für diese Erläuterungen. Unter diesen Umständen verstehe ich die Fehlermeldung auch nicht. Aber könnte es sein, dass wir ziemlich aneinander vorbei geredet haben?
Nach Deinen Erklärungen gehen mir folgende Gedanken durch den Kopf:
SQL-Code:
Lehrer werden ausschließlich über TabelleA gespeichert.
/* TabelleA bleibt unverändert */
/* TabelleB sieht so aus: */ CREATE TABLE Tbl_Stundenplan ( ID INTEGER NOT NULL, Wochentag SMALLINT NOT NULL CHECK(VALUE BETWEEN 1 AND 6), Stunde SMALLINT NOT NULL, Lehrer_ID INTEGER, CONSTRAINT Stundenplan_PK PRIMARY KEY(ID), CONSTRAINT Stundenplan_Lehrer FOREIGN KEY(Lehrer_ID) REFERENCES TabelleA(ID) ); /* hinzu kämen noch Eindeutigkeitsprüfungen: Wochentag + Stunde + Lehrer_ID */ Zum Ansehen des Wochenplans kämen vermutlich VIEWs in Frage: Stundenverteilung je Lehrer, Raumverteilung je Stunde u.ä. Zu jeder Wochenstunde wird nicht etwa Anrede und Name eingegeben, sondern einer der vorhandenen Lehrer ausgewählt. An der Stelle muss ich passen, weil ich bisher erst meine Datenstruktur konstruiert und die Oberfläche konzipiert, aber noch nicht realisiert habe. Für mich wäre aber klar:
Wenn ich Deine Gedanken richtig interpretiert und umgesetzt habe, dann versuche bitte, damit weiterzugehen. Wenn ich Dich falsch verstanden habe, dann bitte ich um Entschuldigung - und dann vergiss für Dein Problem am besten fast alles, was ich gesagt habe (auch wenn die von mir genannten Einzelheiten richtig sein müssten). Gruß Jürgen |
Re: Daten von einer Tabelle in eine andere schreiben
Danke für deine Hilfe. Ich habe inzwischen herausgefunden, warum der Fehler auftritt. Komischerweise will er die Feld- und Tabellennamen entweder nur in Großbuchstaben oder in Anführungszeichen haben. Komisch :gruebel: ... naja, du hast mir jedenfalls sehr geholfen. Nochmals danke dafür.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz