1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

CASE oder IIF?

Dieses Thema im Forum "Microsoft Access" wurde erstellt von cabal, 7 November 2011.

  1. cabal

    cabal Neuer Benutzer

    Hallo Leute,

    ich wollte mir mal eine kleine Hilfestellung holen, wenn ihr mir das beantworten könnt :)...

    Es geht mir darum, dass ich eine Beschreibung (Description) von einer Zahl (Ist ein Textfeld) zu einem Buchstaben ändern will, während ich diese in eine neue Tabelle schieben möchte.

    Da ich nicht weiss, inwieweit Access gewisse Funktionen nicht beherrscht, habe ich folgendes probiert:

    INSERT INTO ZIELTABELLE (ID, DESCRIPTION, PREIS)
    SELECT SERVICE_ID, QUELLE= CASE WHEN = '1' THEN 'D' WHEN = '2' THEN 'E' END, RATE
    FROM URSPRUNGSTABELLE

    Oder auch mit einer IIF. Hier hat es aber nur mit der ersten IIF funktioniert. Wenn ich die 2. einbaue, geht es wieder nicht.

    INSERT INTO ZIELTABELLE (ID, DESCRIPTION, PREIS)
    SELECT SERVICE_ID, IIF (QUELLE= '1', 'D') or IIF (QUELLE='2', 'E'), RATE
    FROM URSPRUNGSTABELLE

    Beides ging leider nicht so, wie ich es wollte.

    Was hab ich falsch gemacht?

    Danke für eure Hilfe!

    VG
     
  2. ukulele

    ukulele Datenbank-Guru

    Was ist denn die Ausgangsdatenbank? Mit IF geht es z.B. bei MSSQL nicht, ich glaube das gibt bei den meisten TSQL DBs Probleme.

    Probier mal das:
    Code:
    INSERT INTO ZIELTABELLE (ID, DESCRIPTION, PREIS)
    SELECT SERVICE_ID AS ID, (CASE QUELLE WHEN '1' THEN 'D' WHEN '2' THEN 'E' END) AS DESCRIPTION, RATE AS PREIS
    FROM URSPRUNGSTABELLE
     
  3. cabal

    cabal Neuer Benutzer

    Hallo ukulele,

    danke für deine Antwort!

    Ich habe es probiert, leider geht es nicht. Ich operiere innerhalb einer DB. Es geht nur darum, dass ich die Daten im neuen Format zur Verfügung stelle. Am Ende, wenn es funktioniert, müssen die Daten aus der Zieltabelle nochmal im .csv Format exportiert werden.

    Naja, dann muss ich es wohl über VBA, bzw. mit einer Zwischentabelle, "like"



    Ursprung Ziel
    1 D
    2 E

    lösen...

    Trotzdem danke für die Hilfe!

    VG
     
  4. ukulele

    ukulele Datenbank-Guru

    Eventuell auch:
    Code:
    INSERT INTO ZIELTABELLE (ID, DESCRIPTION, PREIS)
    SELECT SERVICE_ID AS ID, (CASE WHEN QUELLE = '1' THEN 'D' WHEN QUELLE = '2' THEN 'E' END) AS [DESCRIPTION], RATE AS PREIS
    FROM URSPRUNGSTABELLE
     

Diese Seite empfehlen