WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 21.09.2004, 10:05   #1
reichr
Veteran
 
Registriert seit: 31.12.2002
Beiträge: 390


reichr eine Nachricht über ICQ schicken
Standard SQL statement > Daten importieren

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
reichr ist offline   Mit Zitat antworten
Alt 21.09.2004, 11:31   #2
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

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
käptn ist offline   Mit Zitat antworten
Alt 21.09.2004, 11:47   #3
K@sperl
bitte Mailadresse prüfen!
 
Registriert seit: 03.04.2001
Beiträge: 2.387


Standard

Müßte IMHO auch so gehen:
SELECT cat1, cat2, cat3 INTO table2 FROM table1;
K@sperl ist offline   Mit Zitat antworten
Alt 21.09.2004, 11:49   #4
RStAstl
Veteran
 
Registriert seit: 17.09.2000
Beiträge: 224


Standard

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!
RStAstl ist offline   Mit Zitat antworten
Alt 21.09.2004, 12:02   #5
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Wohl die WHERE Klausel übersehen?

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 21.09.2004, 12:28   #6
RStAstl
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.
RStAstl ist offline   Mit Zitat antworten
Alt 21.09.2004, 13:28   #7
JoergStueger
Master
 
Registriert seit: 28.10.2002
Alter: 47
Beiträge: 626


JoergStueger eine Nachricht über ICQ schicken
Standard

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
JoergStueger ist offline   Mit Zitat antworten
Alt 21.09.2004, 13:34   #8
JoergStueger
Master
 
Registriert seit: 28.10.2002
Alter: 47
Beiträge: 626


JoergStueger eine Nachricht über ICQ schicken
Standard

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
JoergStueger ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:24 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag