2017-06-26 2 views
0

Ich habe eine Tabelle (Mailing) mit einem Feld (Dateiname), die 3 verschiedene Werte über alle Datensätze hat. Sagen wir, die Werte sind:Fügen Sie 'n' Zeilen basierend auf DISTINCT Werte ein und füllen Sie neue Zeilenwerte

File1
File2
File3

Ich brauche einen Datensatz aus einer anderen Tabelle (Seeds) in die Mailing-Tabelle einzufügen, basierend auf diesen unterschiedlichen Werten und dann das Feld Datei aktualisieren mit Diese Werte für den Datensatz, den ich in die Mailing-Tabelle einfüge.

Also, wenn ich 1 Datensatz einfügen soll, werde ich am Ende den gleichen Datensatz 3 mal einfügen, jeder einen eindeutigen Wert.

Um einen wenig Kontext zu geben, hier ist mein Grund INSERT INTO Aussage:

INSERT INTO dbo.mailing (
    Filename, 
    Title, 
    Forename, 
    Surname, 
    Address1, 
    Address2, 
    Address3, 
    Address4, 
    Address5, 
    Address7) 
SELECT 
    '?' AS Filename, 
    Title, 
    Forename, 
    Surname, 
    Company, 
    Address1, 
    Address2, 
    Address3, 
    Address4, 
    Postcode 
FROM dbo.Seeds AS S 
WHERE S.URN = 1 

Ich habe offensichtlich die Datei hart codiert wie? zur Zeit. Ich hoffe das macht Sinn?.

Antwort

0

Wenn ich richtig verstehe, haben Sie ein filename Feld in seeds. Wenn ja, können Sie eine Nummer anhängen:

SELECT Filename + cast(row_number() over (partition by filename order by filename) as varchar(255)) as Filename, 
     . . . 
FROM dbo.Seeds S 
WHERE S.URN = 1; 
+0

Hallo Gordon - eigentlich gibt es kein Dateiname Feld in den Samen. Der Dateiname befindet sich in meiner Haupttabelle mit den eindeutigen Werten. Ich muss diese beim Einfügen für die Seeds auffüllen – ByteAddict

Verwandte Themen