Выберите в таблице из таблицы 2, где столбец в (подзапрос)
SELECT .... ColumnNames ...
INTO [FOUND_DUPLICATES]
FROM [FIND_DUPLICATES] AS FD
WHERE FD.[Contract No] IN
(SELECT [Contract No],
[Vehicle Identity number (VIN)],
COUNT(*) AS Anzahl
FROM FIND_DUPLICATES
GROUP BY
[Contract No],
[Vehicle Identity number (VIN)]
HAVING COUNT(*) >1)
Здесь вы можете увидеть, что я хочу:)
Найдите дубликаты и скопируйте их в другую таблицу. Но с этим кодом я получаю ошибку:
Только одно выражение может быть указано в списке выбора, если подзапрос не введен с EXISTS.
Оператор SELECT для поиска дубликатов работает очень хорошо. Но у меня есть проблема, чтобы выбрать и скопировать только дубликаты в новую таблицу с помощью Select Into.
Я надеюсь, вы понимаете, чего я хочу, и любой может помочь мне с этим:)
// РЕДАКТИРОВАТЬ: я использую SQL Server 2008 R2
3 ответа
Решение
Добавление другого подзапроса должно работать?
Select .... ColumnNames ...
INTO [FOUND_DUPLICATES]
FROM [FIND_DUPLICATES]
AS FD
where FD.[Contract No]
IN ( Select [Contract No] from (Select
[Contract No],
[Vehicle Identity number (VIN)],
COUNT(*) AS Anzahl
from FIND_DUPLICATES
group by
[Contract No],
[Vehicle Identity number (VIN)]
having count(*) >1)x)
Select .... ColumnNames ...
INTO [FOUND_DUPLICATES]
FROM [FIND_DUPLICATES]
AS FD
where FD.[Contract No]
IN (
select [Contract No] from (Select --inner sub query
[Contract No],
[Vehicle Identity number (VIN)],
COUNT(*) AS Anzahl
from FIND_DUPLICATES
group by
[Contract No],
[Vehicle Identity number (VIN)]
having count(*) >1) )
Вы можете использовать это:
SELECT .... ColumnNames ...
INTO [FOUND_DUPLICATES]
FROM [FIND_DUPLICATES] AS FD
WHERE FD.[Contract No] IN
(
SELECT
[Contract No]
FROM FIND_DUPLICATES
GROUP BY
[Contract No],
[Vehicle Identity number (VIN)]
HAVING COUNT(*) >1
)
или используйте коррелированный подзапрос:
SELECT .... ColumnNames ...
INTO [FOUND_DUPLICATES]
FROM [FIND_DUPLICATES] AS FD
WHERE EXISTS
(
SELECT 1
FROM FIND_DUPLICATES FD1
WHERE FD.[Contract No] = FD1.[Contract No]
GROUP BY
FD1.[Contract No],
FD1.[Vehicle Identity number (VIN)]
HAVING COUNT(*) >1
)