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
Sunny61 833 Geschrieben 2. November 2013 Melden Geschrieben 2. November 2013 Mit Datediff solltest Du das hinkriegen: http://msdn.microsoft.com/de-de/library/ms189794.aspx
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!
Sunny61 833 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.
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'
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden