Как я могу удалить строки, которые соответствуют нескольким условиям из таблицы без первичного ключа? (фактически первичный ключ формируется каждым столбцом)
После стольких попыток у меня есть код, который сначала создает временную таблицу, в которую он вставляет строки, которые я хочу удалить, и, наконец, я пытаюсь удалить строки из исходной таблицы, которые соответствуют условиям по сравнению с временной таблицей.
Но это дает мне ошибку о том, что невозможно связать идентификатор нескольких частей #temp.idCarga
Может быть, это легко, но я так долго пытался, и я не могу сосредоточиться должным образом.
CREATE TABLE #TEMP
(
CC int,
idCarga int,
Tipo nvarchar(50),
Importe float,
Bloque nvarchar(50),
idsistema int
)
INSERT INTO #TEMP(CC,idCarga,Importe,Bloque,Tipo,IdSistema)
select distinct CI.CC,CI.idCarga,CI.Importe,CI.Bloque,CI.Tipo,CI.idSistema
from CONT_INGRESOS_InformeMayor CI
INNER JOIN
(
SELECT idCarga,CC,Bloque,Importe,TIpo
FROM CONT_INGRESOS_InformeMayor
) CI2
ON CI.CC = CI2.CC
AND CI.Bloque = CI2.Bloque
AND CI.TIpo <> CI2.Tipo
WHERE CI.idCarga = @idCarga
AND CI2.idCarga = @idCarga
AND CI.Importe = 0
DELETE
FROM CONT_INGRESOS_InformeMayor
WHERE idCarga = #temp.idCarga
AND tipo = #temp.tipo
AND importe = #temp.importe
and bloque = #temp.bloque