2017-12-08 6 views
0

MS Access에서 필드를 채우려고합니다. 필드를 채우려는 문자열은 다른 열의 문자열에 따라 다릅니다. 다른 필드의 값에 따라 같은 필드를 다른 값으로 업데이트하는 방법이 있습니까?ms access sql - y = a 인 경우 필드를 x로 업데이트합니다. elseif elseif

쿼리 디자이너에서 채워지는 필드를 여러 번 선택했지만 출력 필드가 중복되었다는 메시지가 반환됩니다.

Col1 Populated 
x  1 
x  1 
y  2 
j  10 
y  2 
j  10 
x  1 
+0

예, 가능합니다. IF 문을 중첩해야 할 수도 있고, 여러 필드 (동일한 필드 중복)에 별도의 if 문을 작성하지 않아도됩니다. 논리를 공유 할 수 있습니까? 복사/붙여 넣기를 할 수있는 UPDATE 쿼리를 작성하고 디자이너에게 다시보고 전환 할 수 있습니다. – JNevill

답변

0

이것은 시작으로 도움이 될 수

DECLARE @Temp TABLE (
Col1 NVARCHAR(1) 
,Populated INT 
) 

INSERT INTO @Temp 
VALUES 
('x',1) 
,('x',1) 
,('y',2) 
,('j',10) 
,('y',2) 
,('j',10) 
,('x',1) 

DECLARE @InputA INT 
SET @InputA = 2 

DECLARE @Y INT 
SELECT @Y = (SELECT Top 1 Populated FROM @Temp WHERE Col1 = 'Y') 

DECLARE @x INT 
SELECT @x = (SELECT Top 1 Populated FROM @Temp WHERE Col1 = 'x') 


SELECT 
    Col1 
    ,Populated 
    ,CASE WHEN Populated = @InputA THEN @X 
      ELSE Populated 
      END 
FROM @Temp