Announcement

Collapse
No announcement yet.

Insert Into Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Insert Into Problem

    Hallo,

    mein Vorhaben: Ich habe zwei identische Tabellen (Outputjobs, auf unterschiedlichen Datenbanken), dessen Id-Spalten wiederum Schlüssel für eine andere Tabelle (OutputJobSheets) sind. Ich habe die Datensätze bereits in die OutputJobs-Tabelle eingefügt und jetzt möchte ich gerne die Tabelle OutputJobSheets nachbilden. In dieser Tabelle ist die Id aus der OutputJobs-Tabelle die Spalte JobId. Außerdem gibt es zu jedem Datensatz aus der OutputJobs-Tabelle zwischen 0 und x Einträge in der OutputJob-Sheets-Tabelle.

    Hier mein (nicht funktionstüchtiges) Statement:
    Code:
     INSERT INTO [Addon_test].[dbo].[OutputJobsSheets]
     (JobId, Nr, PrintType, PaperType, ColorType)
     SELECT (
    	SELECT Id 
    	FROM [Addon_test].[dbo].[OutputJobs] 
    	WHERE EXISTS (
    		SELECT Name 
    		FROM [Addon].[dbo].[OutputJobs] 
    		WHERE Name IN (
    			SELECT Name 
    			FROM [Addon_Test].[dbo].[OutputJobs])
    		)
    	), 
     Nr, PrintType, PaperType, ColorType
     FROM [Addon].[dbo].[OutputJobsSheets]
     WHERE NOT EXISTS (
    	SELECT Id 
    	FROM [Addon_test].[dbo].[OutputJobsSheets] 
    	WHERE JobId NOT IN (
    		SELECT Id 
    		FROM [Addon_Test].[dbo].[OutputJobs])
    	)
    Ich denke der Part, wo ich versuche die JobId zu ermitteln läuft nicht so ganz. Bin absolut kein Genie was SQL angeht. Deshalb wäre es lieb, wenn man mir hier einen kleinen Tipp geben könnte. Bekomme beim Statement oben die Fehlermeldung:
    "Meldung 512, Ebene 16, Status 1, Zeile 1
    Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird."
    Ich muss also quasi bei der Selektion der Id/JobId schauen das ich nur einen Wert selektiere, aber gleichzeitig dafür sorgen, dass nicht immer derselbe Wert aufgegriffen wird.
Working...
X