Peter Hussock 10 Geschrieben 1. November 2013 Melden Teilen 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 Link zu diesem Kommentar
Sunny61 806 Geschrieben 2. November 2013 Melden Teilen Geschrieben 2. November 2013 Mit Datediff solltest Du das hinkriegen: http://msdn.microsoft.com/de-de/library/ms189794.aspx Zitieren Link zu diesem Kommentar
Peter Hussock 10 Geschrieben 2. November 2013 Autor Melden Teilen 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 Link zu diesem Kommentar
Sunny61 806 Geschrieben 2. November 2013 Melden Teilen 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 Link zu diesem Kommentar
ukulele 11 Geschrieben 22. November 2013 Melden Teilen 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 Link zu diesem Kommentar
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.