0

SQL에 익숙하지 않지만 다른 테이블의 설명을 사용하여 하나의 테이블에 두 개의 가격을 (20 % 세금을 추가하기 위해) 업데이트해야하는 쿼리를 작성했습니다. 테이블을 결합하여, 여기에 내 문제 코드 : - 나는 SQL Express를 2008 년 전체 SQL 2012 년이 시도SQL Server 2012에서 Join으로 업데이트하는 중 문제가 발생했습니다.

UPDATE IT_PRICE 
SET ITPrice1 = Price1 + (Price1 * .2), ITPrice2 = Price2 + (Price2 * .2) 
INNER JOIN IT_PRICE 
ON ITEMS.ID = IT_PRICE.ID 
Where ITPrice1 <= 0 AND ITPrice2 <=0 AND ITEMS.Item = 'Jet Tec HP 78' 

하지만 'INNER'에 구문 오류가 그래서 다른에서 그것을 맞추려고 WITH 문을 사용하여 각도 -

WITH Item_ID as (
SELECT ITEMS.ID FROM ITEMS WHERE ITEMS.Item = 'Jet Tec HP 78' 
) 
UPDATE IT_PRICE 
SET ITPrice1 = Price1 + (Price1 * .2), ITPrice2 = Price2 + (Price2 * .2) 
WHERE ITPrice1 <= 0 AND ITPrice2 <=0 AND ID = Item_ID 

이제 '잘못된 열 이름 Item_ID'얻을 때 전 ex 진술서를 읽으십시오. IT_PRICE 테이블의 두 가지 가격에 세금을 추가하여 설명과 일치하는 ITEMS의 모든 항목에 추가하면됩니다.

누구든지 올바른 방향으로 나를 가리킬 수 있으면 매우 감사 할 것입니다.

감사합니다.

+0

중복 가능성 [다른 테이블의 SQL 서버 CE 테이블 업데이트를 수행하는 방법 (http://stackoverflow.com/questions/1311236/how-to- do-sql-server-ce-table-update-from-another-table) –

+0

SQL 2008 Compact Edition이있는 것 같습니다. SQL 2012 전체 버전에 대해 실행하고 올바르게 완료했습니다. 이렇게 빠른 답변과 형식있는 코드를 제공해 주셔서 감사합니다. 내 마음에 잠자리에 들지 않도록 저를 구해 주셨습니다. –

답변

1

당신은 FROM 절 누락 :

UPDATE IT_PRICE 
SET ITPrice1 = Price1 + (Price1 * .2), ITPrice2 = Price2 + (Price2 * .2) 
FROM IT_PRICE ITEMS INNER JOIN IT_PRICE 
ON ITEMS.ID = IT_PRICE.ID 
Where ITPrice1 <= 0 AND ITPrice2 <=0 AND ITEMS.Item = 'Jet Tec HP 78' 
관련 문제