none
SQL, Wie verbinde ich eine Aktualisierungsabfrage mit einer Bedingung?

    Frage

  • Tabellen: Reitart 1:n Reiter, Reiter 1:n Pferd

    Ich möchte, dass sich ein Wert in der Tabelle Pferd (Kosten) nur bei einer bestimmten Reitart um 30% erhöht. Den Code ohne die Bedingung habe ich so gemacht:

    UPDATE Pferd SET Pferd.Kosten = Pferd.Kosten*1.3

    Kann mir jemand helfen wie ich diese Bedingung als Code schreibe?

    Vielen Dank!

    Mittwoch, 13. Juni 2018 10:59

Antworten

  • Hallo,

    einfach eine WHERE Klausel dazu schreiben

    UPDATE Pferd 
    SET Pferd.Kosten = Pferd.Kosten*1.3
    WHERE Pferd.Reitart = 'Galopp'


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 13. Juni 2018 11:26
  • Olaf Helper [MVP] wrote:
    >
    > UPDATE Pferd
    > SET Pferd.Kosten = Pferd.Kosten*1.3
    > WHERE Pferd.Reitart = 'Galopp'
     
    Ich glaube, die Reitart war ein Fremdschlüssel beim Reiter, also
     
    UPDATE Pferd INNER JOIN Reiter ON Pferd.Reiter=Reiter.Reiter
    SET Pferd.Kosten = Pferd.Kosten * 1.3
    WHERE Reiter.Reitart = 'Galopp'
     
    (Setzt voraus, dass das Feld für Reiter in den beiden Tabellen auch
    wirklich so heisst.)
     
    Gruss - Peter
     
    --
     
    Mittwoch, 13. Juni 2018 17:44
    Moderator

Alle Antworten

  • Hallo,

    einfach eine WHERE Klausel dazu schreiben

    UPDATE Pferd 
    SET Pferd.Kosten = Pferd.Kosten*1.3
    WHERE Pferd.Reitart = 'Galopp'


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 13. Juni 2018 11:26
  • Olaf Helper [MVP] wrote:
    >
    > UPDATE Pferd
    > SET Pferd.Kosten = Pferd.Kosten*1.3
    > WHERE Pferd.Reitart = 'Galopp'
     
    Ich glaube, die Reitart war ein Fremdschlüssel beim Reiter, also
     
    UPDATE Pferd INNER JOIN Reiter ON Pferd.Reiter=Reiter.Reiter
    SET Pferd.Kosten = Pferd.Kosten * 1.3
    WHERE Reiter.Reitart = 'Galopp'
     
    (Setzt voraus, dass das Feld für Reiter in den beiden Tabellen auch
    wirklich so heisst.)
     
    Gruss - Peter
     
    --
     
    Mittwoch, 13. Juni 2018 17:44
    Moderator