2017-12-08 3 views
0

Ich versuche ein Feld in MS Access zu füllen. Die Zeichenfolge, mit der ich das Feld füllen möchte, hängt von der Zeichenfolge in einer anderen Spalte ab. Gibt es eine Möglichkeit, das gleiche Feld mit verschiedenen Werten zu aktualisieren, abhängig vom Wert eines anderen Feldes?ms access sql - wenn y = a, update Feld zu x, elseif elseif

Ich habe versucht, das Feld im Abfrage-Designer mehrmals zu markieren, aber es gibt eine Nachricht zurück, die besagt, dass das Ausgabefeld dupliziert wurde.

heißt

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

Ja, es ist möglich. Möglicherweise müssen Sie IF-Anweisungen verschachteln, schreiben Sie keine separate if-Anweisung in mehrere Felder (die die gleichen Feldduplikate sind). Kannst du deine Logik teilen? Wir können wahrscheinlich eine UPDATE-Abfrage schreiben, die Sie kopieren und einfügen und zurück zum Designer wechseln können, um zu sehen. – JNevill

Antwort

0

Dies als Start helfen können:

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