0
그래서이 테이블을 업데이트해야하는 쿼리가 있습니다. 테이블에 값이있는 경우 테이블의 한 열만 업데이트해야합니다. 존재하지 않으면 열에 삽입해야합니다.조건에 따라 다른 열의 값이있는 열의 SQL 합계 값
IF EXISTS (SELECT d1.IDComanda, d1.IDComandaPozitie, sum(d1.Cantitate) FROM GEMsc2Pozitii as d1
WHERE d1.IDComanda IS NOT NULL and d1.IDComandaPozitie is not null
GROUP BY d1.IDComanda , d1.IDComandaPozitie
)
BEGIN
UPDATE #ComenziCuPozActive SET CantInchisa = CantInchisa + (SELECT sum(d1.Cantitate) from GEMsc2Pozitii as d1
WHERE d1.IDComanda IS NOT NULL and d1.IDComandaPozitie is not null
GROUP BY d1.IDComanda , d1.IDComandaPozitie )
END
ELSE
BEGIN
INSERT INTO #ComenziCuPozActive
SELECT d1.IDComanda, d1.IDComandaPozitie, sum(d1.Cantitate) FROM GEMsc2Pozitii as d1
GROUP BY d1.IDComanda , d1.IDComandaPozitie
END
문제는 SET CantInchisa는 논리가 여러 값을 가질 수 없다는 것입니다. 어떻게하면 조건에 따라 2 개의 열을 더할 수 있습니까?
예 : a.IDComanda = b.IDComanda 및 a.IDComandaPozitie = b.IDPozitie 내가 cantitate 열을 합계를
#ComenziCuPozActive a
IDComanda IDPozitie CantInchisa
1 1 2
1 2 1
2 2 4
GEMsc2Pozitii b
IDComanda IDComandaPozitie Cantitate
1 1 2
1 2 1
2 2 4
.
RESULT
#ComenziCuPozActive a
IDComanda IDPozitie CantInchisa
1 1 4
1 2 2
2 2 8
UPDATE 문의 WHERE 절에 WHERE EXISTS (...)를 사용하는 것이 좋습니다. –
나는 그것을 가능하게 만들었습니다. – CiucaS