von Barlee » Fr, 20.07.2007 18:50
Hallo nusta88,
hier eine schnelle, mögliche Lösung mittels SQL.
meine Annahme:
-Werte in der Spalte "Dauer" sind immer mit Doppelpunkt (":") getrennt
-neue Werte werden auch weiterhin als "varchar" nach dem gleichen Muster eingegeben
-Minuten (hinter dem Doppelpunkt) werden höchstens zweistellig angegeben (Du kannst allerdings den substring Befehl entsprechend auch auf höhere Werte anpassen)
Zur Arbeitsweise:
-in der Unterabfrage werden die Werte vor dem Doppelpunkt als Stunden und dahinter als Minuten "ausgeschnitten" und in INTEGER konvertiert.
-In dieser Ergebnistabelle werden Stunden und Minuten summiert und wieder als Zeichenkette nach dem Muster "Stunden"":""Minuten" zusammengefügt. Bei Aufsummierung der Minuten wird für jede volle 60 Minuten eine Stunde der Stundenanzahl hinzugefügt. Als Minuten werden nur "Restminuten" ausgegeben, d.h. nach Abzug der Minuten für jede volle Stunde
Code: Alles auswählen
select
concat(sum(a.Stunden)+(sum(a.Minuten)/60),concat(':',sum(a.Minuten)-((sum(a.Minuten)/60)*60))) as Zeit_Ges
from
(
select
cast(substring([Spalte mit Zeitwerten],1,(locate(':',zeit,1)-1)) as INT) as Stunden,
cast(substring([Spalte mit Zeitwerten],(locate(':',zeit,1)+1),2) as INT) as Minuten
from [Tabelle]
)a
Ersetze [Spalte mit Zeitwerten], [Tabelle] entsprechend mit Deinen Angaben.
Gruss Barlee
Hallo nusta88,
hier eine schnelle, mögliche Lösung mittels SQL.
meine Annahme:
-Werte in der Spalte "Dauer" sind immer mit Doppelpunkt (":") getrennt
-neue Werte werden auch weiterhin als "varchar" nach dem gleichen Muster eingegeben
-Minuten (hinter dem Doppelpunkt) werden höchstens zweistellig angegeben (Du kannst allerdings den substring Befehl entsprechend auch auf höhere Werte anpassen)
Zur Arbeitsweise:
-in der Unterabfrage werden die Werte vor dem Doppelpunkt als Stunden und dahinter als Minuten "ausgeschnitten" und in INTEGER konvertiert.
-In dieser Ergebnistabelle werden Stunden und Minuten summiert und wieder als Zeichenkette nach dem Muster "Stunden"":""Minuten" zusammengefügt. Bei Aufsummierung der Minuten wird für jede volle 60 Minuten eine Stunde der Stundenanzahl hinzugefügt. Als Minuten werden nur "Restminuten" ausgegeben, d.h. nach Abzug der Minuten für jede volle Stunde
[code]
select
concat(sum(a.Stunden)+(sum(a.Minuten)/60),concat(':',sum(a.Minuten)-((sum(a.Minuten)/60)*60))) as Zeit_Ges
from
(
select
cast(substring([Spalte mit Zeitwerten],1,(locate(':',zeit,1)-1)) as INT) as Stunden,
cast(substring([Spalte mit Zeitwerten],(locate(':',zeit,1)+1),2) as INT) as Minuten
from [Tabelle]
)a
[/code]
Ersetze [Spalte mit Zeitwerten], [Tabelle] entsprechend mit Deinen Angaben.
Gruss Barlee