![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() |
![]() hallo!
table1 art.nr, cat1, cat2, cat3 table2 art.nr, cat1, cat2, cat3 ... nun möchte ich folgendes: in der ersten tabelle sind cat1 - 3 befüllt diese möchte ich jetzt auch in der 2. tabelle lt. der 1. befüllen. dafür bräucht ich eure hilfe.. in der 2. tabelle ist nur die art.nr befüllt >also lt. art.nr sollen die spalten in der 2. tabelle befüllt werden (MSSQL SERVER 2000)
____________________________________
lg Chris |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150
|
![]() Check mal die MSSQL-Docs ob UPDATEs auf mehrere Tabellen unterstützt werden...
Code:
UPDATE t1, t2 SET t2.cat1 = t1.cat, t2.cat2 = t1.cat2, t2.cat3 = t2.cat3 WHERE t1.id = t2.id;
____________________________________
LOL - Mein erstes Post im Programmier Forum MACINTOSH - Most Applications Crash, If Not The Operating System Hangs |
![]() |
![]() |
![]() |
#3 |
bitte Mailadresse prüfen!
Registriert seit: 03.04.2001
Beiträge: 2.387
|
![]() Müßte IMHO auch so gehen:
SELECT cat1, cat2, cat3 INTO table2 FROM table1; |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 17.09.2000
Beiträge: 224
|
![]() Code:
UPDATE table2 INNER JOIN table1 ON table2.art_nr = table1.art_nr SET table2.cat1 = table1.cat1 , table2.cat2 = table1.cat2 , table2.cat3 = table1.cat3 ; Anmerkung: Hier wird (richtigerweise) ein der Verbung der beiden Tabellen gebildet (Join) und nicht das kartesische Produkt verwendet. Auch werden die richtigen Spalten aus der richtigen Tabelle genommen. (Problem von käptn) Beim zweiten Lösungsvorschlag wird die Tabelle table2 vorher gelöscht (bzw. muss gelöscht werden). PS: "art.nr" ist IMHO kein gültiger Spartenname. -> Unterstrick! |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150
|
![]() Wohl die WHERE Klausel übersehen?
~
____________________________________
LOL - Mein erstes Post im Programmier Forum MACINTOSH - Most Applications Crash, If Not The Operating System Hangs |
![]() |
![]() |
![]() |
#6 |
Veteran
![]() Registriert seit: 17.09.2000
Beiträge: 224
|
@käptn
Ja - hab die WHERE übersehen *ups* Hab mein SQL schon vorher geschrieben aber erst nach dir gepostet. Jedenfalls hat er nun eine Lösung. |
![]() |
![]() |
![]() |
#7 |
Master
![]() |
![]() Mahlzeit zusammen!
Misch mich hier mal als Chris' Kollege kurz ein. Das Statement: UPDATE WaBsAr SET WaBsAr.sGkCd1 = WaBsArDaten.Cat1 WHERE WaBsAr.sBsArNr = WaBsArDaten.ArtNr Liefert folgende Fehlermeldung: Server: Nachr.-Nr. 107, Schweregrad 16, Status 3, Zeile 1 Das Spaltenpräfix 'WaBsArDaten' stimmt mit keinem in der Abfrage verwendeten Tabellen- oder Aliasnamen überein. Server: Nachr.-Nr. 107, Schweregrad 16, Status 1, Zeile 1 Das Spaltenpräfix 'WaBsArDaten' stimmt mit keinem in der Abfrage verwendeten Tabellen- oder Aliasnamen überein. Kann der SQL2000 etwa solche Update Statement nicht? LG Joerg |
![]() |
![]() |
![]() |
#8 |
Master
![]() |
![]() Kommando zurück!!!
Ein RTFM hilft immer wieder, so funkts: UPDATE WaBsAr SET WaBsAr.sGkTlCd12 = WaBsArDaten.Cat3 FROM WaBsAr, WaBsArDaten WHERE WaBsAr.sBsArNr = WaBsArDaten.ArtNr LG Joerg |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|