Peter Hussock 10 Geschrieben 1. November 2013 Melden Geschrieben 1. November 2013 Hallo Team, sorry, ich bin ein ziemlicher Laie hier und brauche Eure Hilfe. Ich habe eine Tabelle, nennen wir sie "Aktivitaeten", mit u.a. einer Spalte Datum (Startdatum) und einer Spalte EnddatumZeit. Nun würde ich gerne aus diesen beiden Spalten zur Urlaubsermittlung die Differenz und die Summe derer ermitteln. Und zwar, wenn z.B.: Datum EnddatumZeit Wunschermittlung 2013-11-01 12:00:00 2013-11-01 23:59:00 0,5 2013-12-06 00:00:00 2013-12-06 12:00:00 0,5 2013-07-01 00:00:00 2013-07-05 23:59:00 5,0 Summe: 6,0 Ich gehe davon aus, zur Urlaubsermittlung gibt es eigentlich nur halbe und ganze Tage. Nun noch ein kleiner Wunsch. Die Werte können mehrere Leute in die Tabelle einschreiben und so kann es sein, dass manche Werte doppelt (ähnlich) drin sind und das wäre nicht so toll. Also hier auch eventuell Doppellungen raus. Viel Spaß beim Knobeln. LG Zitieren
Sunny61 816 Geschrieben 2. November 2013 Melden Geschrieben 2. November 2013 Mit Datediff solltest Du das hinkriegen: http://msdn.microsoft.com/de-de/library/ms189794.aspx Zitieren
Peter Hussock 10 Geschrieben 2. November 2013 Autor Melden Geschrieben 2. November 2013 Hallo Sunny61, danke für Deinen Tipp. Ich habe den Befehl nun erst einmal ähnlich so geschrieben: select ak.Datum,ak.EndDatumZeit , Datediff (day, ak.Datum, ak.EndDatumZeit) as genommenUrlaubstage, *from aktivitaeten akwhere (ak.AktivitaetenArt like 'Urlaub' or bezeichnung like '%Urlaub%')and ak.Datum >= '01.01.13' Auf jedem Fall lief die Abfrage nicht auf Fehler! Nun war aber bei z.B.: Datum EnddatumZeit Ergebnis (genommenUrlaubstage) Wunschergebnis 2013-08-02 00:00:00 2013-08-02 23:59:00 0 1 2013-11-01 12:00:00 2013-11-01 23:59:00 0 0,5 Dannn fehlt mir leider noch die Endsumme auf das Ergebnis 'genommeneUrlaubstage' Bis dann und Danke noch einmal! Zitieren
Sunny61 816 Geschrieben 2. November 2013 Melden Geschrieben 2. November 2013 select ak.Datum,ak.EndDatumZeit , Datediff (day, ak.Datum, ak.EndDatumZeit) as genommenUrlaubstage, * from aktivitaeten ak where (ak.AktivitaetenArt like 'Urlaub' or bezeichnung like '%Urlaub%') and ak.Datum >= '01.01.13' Da fehlt noch die Uhrzeit. Auf jedem Fall lief die Abfrage nicht auf Fehler! Nun war aber bei z.B.: Datum EnddatumZeit Ergebnis (genommenUrlaubstage) Wunschergebnis 2013-08-02 00:00:00 2013-08-02 23:59:00 0 1 2013-11-01 12:00:00 2013-11-01 23:59:00 0 0,5 Dannn fehlt mir leider noch die Endsumme auf das Ergebnis 'genommeneUrlaubstage' Eins nach dem anderen. Mach doch mal einen Rechtsklick auf die Tabelle > Scripte > Create Table. Das Script hier ins Forum posten, dann kann man sich die Tabelle erstellen. Zitieren
ukulele 11 Geschrieben 22. November 2013 Melden Geschrieben 22. November 2013 ceiling( (cast(@ende AS DECIMAL(10,3)) - cast(@start AS DECIMAL(10,3))) *10/5 ) *5/10 bzw. SELECT ak.Datum, ak.EndDatumZeit, ceiling( (cast(ak.EndDatumZeit AS DECIMAL(10,3)) - cast(ak.Datum AS DECIMAL(10,3))) *10/5 ) *5/10 AS genommenUrlaubstage, *FROM aktivitaeten akWHERE ( ak.AktivitaetenArt LIKE 'Urlaub'OR bezeichnung LIKE '%Urlaub%' )AND ak.Datum >= '2013-01-01 00:00:00.000' Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.