tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
807
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    unfaehig unfaehig ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    16
    Ich will eine IF-Anweisung wie in Java/C++ durchführen. Ich benutze eine MSSQL, Das MSSQL Server Management Studio, dort will ich über einen Trigger eine automatisierte Berechung durchführen lassen, für Überstundengehalt. Man bekommt ab 1- 4 Überstunden den Betrag X mehr und dann immer so weiter...
    Will nur wissen was ich falsch mache da er nicht in die IF-Anweisung springt.

    Danke für eure Hilfe

    Code :
    1
    2
    3
    4
    5
    6
    
    IF(@ueStunden <=4)
        SET @nmLohn=@ueStunden*@Stundensatz
        SET @Ueberstundenbetrag =@ueStunden*@Sb4h 
        SET @Gehalt=@nmLohn+@Ueberstundenbetrag+@Festgehalt
        UPDATE dbo.monatsdaten SET MD_Ueberstundenbetrag=@Ueberstundenbetrag    WHERE MD_ID = (select MD_ID from dbo.monatsdaten where MD_ID=@test)
        UPDATE dbo.monatsdaten SET MD_Gehalt=@Gehalt WHERE MD_ID = (select MD_ID from dbo.monatsdaten where MD_ID=@test)
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Es gibt hier auch direkt ein Forum für RDBMS -> http://www.tutorials.de/relationale-datenbanksysteme/

    Ein if gilt immer nur für die nächste Anweisung (in deinem Fall nur für das "set @nmLohn..."). Verwende einen Block:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    IF(@ueStunden <=4)
    BEGIN
    SET @nmLohn=@ueStunden*@Stundensatz
        SET @Ueberstundenbetrag =@ueStunden*@Sb4h 
        SET @Gehalt=@nmLohn+@Ueberstundenbetrag+@Festgehalt
        UPDATE dbo.monatsdaten SET MD_Ueberstundenbetrag=@Ueberstundenbetrag    WHERE MD_ID = (select MD_ID from dbo.monatsdaten where MD_ID=@test)
        UPDATE dbo.monatsdaten SET MD_Gehalt=@Gehalt WHERE MD_ID = (select MD_ID from dbo.monatsdaten where MD_ID=@test)
    END
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    unfaehig unfaehig ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    16
    /Könnte ich vllt nen MOVE Bekommen in RDBMS


    Ok jetzt schmeißt mir das ding ne Fehlermeldung von wegen :

    Arithmetischer Überlauffehler beim Konvertieren von int in den numeric-Datentyp.


    Hab nirgends INT verwendet nur Decimal und Stellen sind genause wie in der DB begrenzt.hmmm
    Geändert von unfaehig (07.02.11 um 14:42 Uhr)
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 25.08.10, 19:13
  2. wie mache ich in After Effects ein "Blinken" z.B. als Reflexion auf den Zähnen?
    Von planeto im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 3
    Letzter Beitrag: 20.08.08, 10:43
  3. welche "maya soundkarte" ist die richtige für mein vorhaben
    Von revnu2 im Forum Audiotechnik, Recording & Audio-Software
    Antworten: 3
    Letzter Beitrag: 27.11.06, 23:47
  4. Antworten: 20
    Letzter Beitrag: 08.08.04, 16:55
  5. [Frage] Wie mache ich "unsichtbares" wieder sichtbar
    Von SilentPain im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 27.01.04, 15:32