Как создать временную таблицу со строками из таблицы, но только с использованием строк, которые не совпадают - PullRequest
0 голосов
/ 04 июня 2019

У меня есть таблица с именем 'Position', в которой шесть строк, с id 1,2,3,4,5 y 6 соответственно. Используя скрипт, я создал временную таблицу, в которой есть две строки со строками из 'Position', имеющие только id 5 y 6 соответственно.

Что мне нужно сделать, так это создать новую временную таблицу, но только в том случае, если в ней есть строки из «Position» с идентификаторами 1,2,3 y 4.

Кто-нибудь знает, как это сделать?

Я пробовал это:

SELECT p.[Id] as idPosicion
      ,[CantidadMaximaApilados]
      ,[IdZona]
into #PosicionesRemover
  FROM [Posicion] p -- this is the table with id's 1,2,3,4,5 y 6
  inner join View_ContenedoresEnStock v ON p.Id = v.posicionId

select * from #PosicionesRemover -- this is the temporary table that only has id's 5 y 6

SELECT P.Id, P.CantidadMaximaApilados, P.IdZona INTO #PosicionesNoOcupadas FROM Posicion P
left join #PosicionesRemover R ON R.idPosicion = P.Id -- here is when i try to only left rows with id's 1,2,3 y 4

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Если вам действительно нужно создать временную таблицу:

SELECT p.[Id] as idPosicion
      ,[CantidadMaximaApilados]
      ,[IdZona]
INTO #PosicionesRemover
FROM [Posicion] p -- this is the table with id's 1,2,3,4,5 y 6
INNER JOIN View_ContenedoresEnStock v ON p.Id = v.posicionId

SELECT * FROM #PosicionesRemover

SELECT P.Id, P.CantidadMaximaApilados, P.IdZona 
INTO #PosicionesNoOcupadas 
FROM [Posicion] P
LEFT JOIN #PosicionesRemover R ON R.idPosicion = P.Id
WHERE R.idPosicion IS NULL

В противном случае вы можете просто сделать:

SELECT P.Id, P.CantidadMaximaApilados, P.IdZona 
INTO #PosicionesNoOcupadas 
FROM Posicion P
LEFT JOIN View_ContenedoresEnStock v ON P.Id = v.posicionId
WHERE v.posicionId IS NULL
0 голосов
/ 04 июня 2019

Лучше сделать одним утверждением:

    SELECT p.[Id] as idPosicion
        ,[CantidadMaximaApilados]
        ,[IdZona]
    into #PosicionesRemoverNEW
    FROM [Posicion] p -- this is the table with id's 1,2,3,4,5 y 6
      inner join View_ContenedoresEnStock v ON p.Id = v.posicionId
    WHERE p.[Id]<5
...