probleme mit werktagen
-
hi
ich suche schon ne weile nach ner funktion für werktagsberechnung zwischen zwei tagen... (ich weiß ich sollte mir wahrscheinlich keine fertigen lösungen anbieten lassen) ... da ich nich der sql-pro bin aber das für ne c++ anwendung brauch...
die funktion wird in ms-sql festgesetzt
-
für MSSQl ist die MSDN zu empfehlen
in deinem Fall hilft die Funktion DatePart um den Wochentag zu bekommen, genauer
select datepart(weekday,datumsspalte) from tabelle
-
hier... meine lösung...
set ANSI_NULLS OFF set QUOTED_IDENTIFIER OFF GO ALTER FUNCTION [dbo].[fn_dat_HolenAnzahlArbeitstage] ( @tdatBeginn DATETIME, @tdatEnde DATETIME ) -- Anzahl von Arbeitstagen/Werktagen zwischen zwei Terminen berechnen. RETURNS INT AS BEGIN DECLARE @intErgebnis INT DECLARE @intAnzahlArbeitstage INT DECLARE @intAnzahlWochen INT DECLARE @intSamstag INT DECLARE @intSonntag INT DECLARE @intWochentagBeginn INT DECLARE @intWochentagEnde INT DECLARE @intKorrektur INT DECLARE @NumWeeks INT SET @intSamstag = 7 SET @intSonntag = 1 IF @tdatBeginn > @tdatEnde BEGIN SELECT @intErgebnis = 0 END ELSE BEGIN -- Anzahl Tage im Zeitraum bestimmen, die nicht Samstag oder Sonntag sind SELECT @intKorrektur = 0 SELECT @intWochentagBeginn = DATEPART(dw, @tdatBeginn) IF @intWochentagBeginn = 6 SELECT @tdatBeginn = @tdatBeginn + 2 IF @intWochentagBeginn = 7 SELECT @tdatBeginn = @tdatBeginn + 1 SELECT @intWochentagEnde = DATEPART(dw, @tdatEnde) IF @intWochentagEnde = 6 SELECT @tdatEnde = @tdatEnde - 1 IF @intWochentagEnde = 7 SELECT @tdatEnde = @tdatEnde - 2 select @NumWeeks = DateDiff(ww, @tdatBeginn, @tdatEnde) SELECT @intAnzahlArbeitstage = @NumWeeks * 5 + DATEPART(dw, @tdatEnde) - DATEPART(dw, @tdatBeginn) SELECT @intErgebnis = @intAnzahlArbeitstage END RETURN @intErgebnis END
-
so anderes problem... wie gesagt... ich bin noch sehr sql-beweandert.. wie mahc ich aus der oben genannten funktion eine tabelle... es kommen noch weitere zählungne von tagen hinzu... soll so aussehen das... eine spalte mit schrift "werktage" und zb. eine weitere mit "gesamttage" oder "anzahlwochen" oder so ... jemand der mir helfen kann?
-
du kannst Tabellen-Trigger verwenden um die Werktage automatisch zu ermitteln, sobald Daten in eine (die gleiche oder eine andere) Tabelle geschrieben/geändert/gelöscht werden
da deine letzte Anfrage aber irgendwie unverständlich war, solltest du vielleicht nochmal eindeutig erklären was du machen willst
-
jo mein standard ausdrucksproblem wenn ich zu schnell schreibe
aber habs geregelt... besser gesagt anders geregelt.. danke für die aufopferung
cya
da vo