Hallo,
ich mache grad Abfragen über paar Tabellen. Ich versuche z.B. von einer Tabelle die in einer Spalte diese Daten beinhaltet.
Dauer
10:50
11:40
13:50
Wenn ich jetzt diese Zahlen mit der Funktion im Entwurfsansicht aufsummieren will, gibt er mir die Fehlermeldung, non-numeric. Allerdings weiß kann ich die Eigenschaften der Spalte nicht umändern. Kann mir bitte jemand sagen, wie ich anders zu einer Lösung kommen könnte? Gibt es vllt ein Makro mit der man, die Zahlen als eine variable rausfischen könnte und dann diese Summieren könnte?
Summieren der Zeiten
Moderator: Moderatoren
Re: Summieren der Zeiten
Hallo nusta88,
2 Fragen:
Welche DB benutzt Du?
Welchen Datentypen besitzen die Werte dieser Spalte momentan?
Gruss Barlee
2 Fragen:
Welche DB benutzt Du?
Welchen Datentypen besitzen die Werte dieser Spalte momentan?
Gruss Barlee
Re: Summieren der Zeiten
ich benutze Base mit HSQLDB. Die Datentypen der Felder sind VARCHAR also Textfelder. Ich weiß das es dann sowieso nicht als Zahl angesehen wird, aber vllt hätte da jmd ne Idee wie man das per Makro lösen könnte oder vllt auch mit SQL
.

Re: Summieren der Zeiten
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
Ersetze [Spalte mit Zeitwerten], [Tabelle] entsprechend mit Deinen Angaben.
Gruss Barlee
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
Gruss Barlee