Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Datenbanken

SQL2005 Import aus Tabelle2 in eine vorhandene Tabelle anhand der Kundennummer

Mitglied: Raban

Raban (Level 1) - Jetzt verbinden

11.12.2008, aktualisiert 16.12.2008, 3381 Aufrufe, 7 Kommentare

Hallo,
ich habe hier ein Problem (MSSQL2005) und weiss nicht genau wie ich das lösen soll.
Habe eine Tabelle wo schon Datensätze vorhanden sind Name, Adresse, PLZ, Ort, Kundennumemr...etc
In einer zweiten Tabelle habe ich 2 Spalten Kundennummer und Priorität

Die Priorität aus der 2. Tabelle soll nun in das Feld "Priorität" in die erste Tabelle übertragen werden (weiss nicht ob das überhaupt geht)

Tabelle 1 mit den Adressen sieht so aus

dafaabdd7289c2fec6bcc38010a91704-tabelle01 - Klicke auf das Bild, um es zu vergrößern

die zweite Tabelle mit den Prioritäten sieht so aus

d6e336acd7f4854313326501060701c5-tabelle02 - Klicke auf das Bild, um es zu vergrößern

das Ergebnis wie es nach dem SQL Befehl aussehen soll

547a6dff8cb2c2486938d07daa7efb50-tabelle03 - Klicke auf das Bild, um es zu vergrößern


Ich benötige ein SQL Befehl der folgendes tut: ein Vergleich zwischen den 2 Tabellen. Die Kundennummer soll abgeglichen werden, wenn diese in beiden Tabellen gleich sind soll der Wert Priorität aus der Tabelle 2 in das Feld Priorität aus der Tabelle 1 übertragen werden und dem richtigen Kunden zugeordnet werden

Weiss jemand ob das überhaupt machbar ist und wie der SQL-Befehl lauten muss damit das ganze funktioniert?

Vielen Dank schon mal im voraus.

Gruß
Robert
Mitglied: Biber
11.12.2008 um 08:01 Uhr
Moin Raban,

das sollte so gehen:
01.
 UPDATE tabelle1 t1  
02.
JOIN tabelle2 t2 on t1.Kundennummer = t2.Kundennummer 
03.
SET t1 Prioritaet = t2.Prioritaet ;
-oder auch-
01.
 UPDATE tabelle1 t1, Tabelle2 t2  
02.
SET t1 Prioritaet = t2.Prioritaet  
03.
WHERE T1.Kundennummer = t2.Kundennummer;
MSSQL unterstützt UPDATEs mit verJOINten Tabellen, bei denen eine Seite des JOINs aktualisiert wird.
Die zweite Syntax ist absolut gleichwertig (INNER JOIN), aber nach meinem Geschmack lesbarer/übersichtlicher.

Grüße
Biber
Bitte warten ..
Mitglied: Raban
11.12.2008 um 11:11 Uhr
Hi,
vielen Dank für die Hilfe. Ich werde das gleich ausprobieren.

Kann man da noch eine Bedingung mit einbauen, wo nur die Kunden angepasst werden wenn diese in der Tabelle01 in der Spalte "Name" mit "EDE" anfangen?

Vielen Dank
Gruß
Robert
Bitte warten ..
Mitglied: Biber
11.12.2008 um 14:11 Uhr
Moin Raban,

Antwort 1)
Du kannst einfach noch ein "WHERE t1.NAME like 'EDE%' an das o.a. UPDATE-Statement (vor das ";") anhängen

Antwort 2)
Du solltest allerdings NIE NIE NIE ein UPDATE-Statement abfeuern, wenn Du nicht vorher mit einem normalen SELECT-Statement geprüft hast, welche Sätze denn betroffen wären.

Grüße
Biber
Bitte warten ..
Mitglied: Raban
12.12.2008 um 10:20 Uhr
Hi Biber,

ich werde nicht schlau wie man den Befehl richtig aufbaut. Ich habe das jetzt so aufgebaut

UPDATE ADDRESSES t1
JOIN tfdiln t2 ON ADDRESSES.CUSTOMERNUMBER0 = tfdiln.Kunde
SET ADDRESSES.TEXT46 = tfdiln.ILN;

aber wenn ich die SQL-Syntax überprüfen lasse kommt dann diese Meldung

"Falsche Syntax in der Nähe von 't1'

die Tabelle die aktualisiert werden muss ist die Tabelle ADDRESSES und zwar die Spalte 'TEXT46' anhand der Kundennummer die abgeglichen werden soll
Die Kundennummer ist in der Tabelle ADDRESSES in der Spalte 'Customernumber0' und in der Tabelle 'tfdiln' in der Spalte 'Kunde'

was mach ich falsch?
Vielen Dank für deine Mühe Biber
Gruß
Robert
Bitte warten ..
Mitglied: Biber
12.12.2008 um 15:40 Uhr
Moin Raban,

ich verwende gerne Tabellen-Alias wie t1, t2 oder auch A, B, C, weil es dann für mich lesbarer/nachvollziehbarer wird.
Der Datenbank ist das vollkommen egal - die kommt auch mit 32stelligen Tabellennamen gut klar.

Nur Du musst Dich entscheiden: wenn Du in einem Statement erstmal "angekündigt" hast, dass Du die Tabelle ADDRESSES ab sofort nur noch "t1" nennst, dann wird sie auch nur noch als "t1" wiedergefunden.

Also entweder OHNE Aliase:
01.
UPDATE ADDRESSES 
02.
JOIN tfdiln ON ADDRESSES.CUSTOMERNUMBER0 = tfdiln.Kunde 
03.
SET ADDRESSES.TEXT46 = tfdiln.ILN;
-oder mit Aliasen:
01.
UPDATE ADDRESSES t1 
02.
JOIN tfdiln t2 ON t1.CUSTOMERNUMBER0 = t2.Kunde 
03.
SET t1.TEXT46 = t2.ILN;
... aber nicht Kraut-und-Rüben.

Grüße
Biber
Bitte warten ..
Mitglied: Raban
16.12.2008 um 06:44 Uhr
Hallo Biber,

ich habe jetzt die Logik verstanden. Danke für die Erklärung.
Habe jetzt den SQL Befehl so aufgebaut

UPDATE ADDRESSES
JOIN tfdiln ON ADDRESSES.CUSTOMERNUMBER0 = tfdiln.Kunde
SET ADDRESSES.TEXT46 = tfdiln.ILN;


aber will irgendwie nicht...da kommt folgende Meldung

Fehler bei der SQL Ausführung

Ausgeführte SQL Anweisung: UPDATE ADDRESSES JOIN tfdiln ON ADDRESSES.CUSTOMERNUMBER0 = tfdiln.Kunde SET ADDRESSES.TEXT46 = tfdiln.ILN;

Fehlerquelle .Net SQL Client Data Provider
Fehlermeldung : Falsche Syntax in der Nähe des 'JOIN'-Schlüsselwortes

Hast Du noch eine Idee?

Vielen Dank für deine Mühe
Gruß
Robert
Bitte warten ..
Mitglied: Biber
16.12.2008 um 08:34 Uhr
Moin Raban,
Hast Du noch eine Idee?
An Ideen mangelt es mir selten.
Bist Du denn noch leidensfähig genug?

Dann machen wir es so:
01.
UPDATE ADDRESSES 
02.
SET TEXT46 = t2.ILN 
03.
FROM ADDRESSES t1, tfdiln t2  
04.
WHERE  t1.CUSTOMERNUMBER0 = t2.Kunde;
-was wiederum diesem hier entsprechen sollte:
01.
UPDATE ADDRESSES 
02.
SET TEXT46 = t2.ILN 
03.
FROM ADDRESSES t1 INNER JOIN tfdiln t2  
04.
ON  t1.CUSTOMERNUMBER0 = t2.Kunde;
Probier bitte mal Variante 1 aus.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Importierte Excel-Tabelle nach dem Import automatisch anpassen
Frage von RedBullBF2Microsoft Office1 Kommentar

Hallo zusammen, ich habe hier eine Excel-Tabelle in der in einer Spalte 1 das Datumsformat wie folgt angezeigt wird: ...

Datenbanken
SQL - Spalte in Tabelle1 in Tabelle2 kopieren
gelöst Frage von BakBoneDatenbanken2 Kommentare

Ich brauch mal kurz eure Hilfe. In derselben DB möchte ich den Inhalt aus Tabelle1 der Spalte1 in Tabelle2 ...

Microsoft Office
MS Office Access, prüfen ob wert in einer anderen tabelle vorhanden
gelöst Frage von badni12Microsoft Office11 Kommentare

Hallo Ich habe ein Insert Into Programm geschrieben, dass die Werte vom Formular x (basierend auf die Tabelle x) ...

VB for Applications
Excel VBA .csv Import in Tabelle x, ab Spalte y
gelöst Frage von drimrimVB for Applications

Hallo, für meine Datenbank benutze ich ein Makro, um die Datensätze aus einer *.csv Datei in meine Tabelle zu ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 16 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 17 StundenSicherheit11 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 18 StundenSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 18 StundenSicherheit13 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen21 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...