Announcement

Collapse
No announcement yet.

Update und Select in einem SCHRITT bei ACCESS funktioniert nicht?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Update und Select in einem SCHRITT bei ACCESS funktioniert nicht?

    Ich habe ein folgendes Problem ich hoffe jemand kann mir dabei helfen:


    Gegeben:Tabelle Test mit den Spalten A,B
    Spalte A beinhaltet die Werte(20.02.14, Null, FTA, GTA)
    Spalte B beinhaltet die Werte(Null, Null, Null, Null)

    Ziel:Das Ziel ist durch ein Update Spalte B auf (20.02.14,20.02.14,20.02.14,20.02.14) hinzubekommen!

    Gegeben: Ausgangstabelle


    A B
    20.02.14 NULL

    NULL Null
    FTA Null

    GTA Null

    Mein Ziel ist es die Spalte B zu ersetzen mit den Eintrag von A aber nur Datum.
    Zieltabelle sollte so aussehen


    A B
    20.02.14 20.02.14

    NULL 20.02.14
    FTA 20.02.14

    GTA 20.02.14

    Nun brauche ich eine Abfrage die diese umsetzt.


    update Test
    set B= (Select A from TEST where Test.A like '%02%')
    Diese Abfrage funktioniert leider nicht, kann mir jemand dabei helfen???

    select top 1 A
    from Test liefert mir den Datensatz 20.02.14 wie kann ich nun diese bei B updaten?

    Ziel ist es wie gesagt Spalte B zu aktualisieren.


    Mfg
    Sinan

  • #2
    normalerweise wird bei einem Update, das sich aus Daten der gleichen Zeile bedient soetwas verwendet.
    Code:
    Update myTable u
      set u.myUpdateColumn = u.MyExistingColumn
    [where ..]
    In Deinem Fall scheint sich der Updatewert sogar konstant zu verhalten, also nur noch:

    Code:
    Update myTable u
      set u.myUpdateColumn = MyNewValue --(also das Datum in Deinem Fall)
    [where ..]
    Gruß, defo

    Comment


    • #3
      Das Problem ist aber das ich nicht den konstanten Wert eintragen kann, dieser Wert ändert sich jeden Tag die Spalte A.
      Daher brauche ich eine Abfrage wo auf die Spalte A zugreift.

      Update myTable u
      set u.myUpdateColumn = MyNewValue --(also das Datum in Deinem Fall) Wie soll ich hier das Datum auslesen?
      [where ..]

      Comment


      • #4
        Originally posted by Sinan View Post
        Das Problem ist aber das ich nicht den konstanten Wert eintragen kann, dieser Wert ändert sich jeden Tag die Spalte A.
        Daher brauche ich eine Abfrage wo auf die Spalte A zugreift.

        Update myTable u
        set u.myUpdateColumn = MyNewValue --(also das Datum in Deinem Fall) Wie soll ich hier das Datum auslesen?
        [where ..]
        Ja, wie würdest Du das machen?
        Ok, also das Update kannst Du, es fehlt nur der Wert.

        Fang mit einer Abfrage an, die genau diesen Wert und nur diesen auslesen kann. Wenn Dir keine Abfragemöglichkeit dazu einfällt, versuch es halt umgangssprachlich.
        Am Ende fügt man das zusammen.
        Gruß, defo

        Comment


        • #5
          Noch etwas:
          Wie werden diese Daten verwendet?

          Ich frage, weil das was da geschehen soll etwas schräg klingt. Hast Du Dich mal mit Normalisierung von Daten beschäftigt? Wahrscheinlich nicht…

          Ganz kurz: man speichert identische Daten nicht mehrfach an verschiedenen Stellen. Das führt nämlich zu dem Problem, dass Du gerade hast. Du musst ständig und überall sicherstellen, dass die mehrfach Daten konsistent sind. Mehr dazu findest Du überall im Netz.

          Kleine Idee:
          Vergiss das Update der Spalte B, nehm alle Werte aus Spalte a
          Code:
          Select A from myTable x, ..
          Und Deinen Datumwert D
          Code:
          (Select D ) y
          Zusammensetzen und fertig:
          Code:
          Select x.A, y.D 
            from myTable x, 
                (Select D) y
          Das löst noch nicht das Problem, wie Du an den Datums-Wert kommst, aber ein Select Statement dafür bekommst Du sicher hin.
          Gruß, defo

          Comment

          Working...
          X