online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon azzido vom 04.09.2019, 07:35 Options

Access If then else in eine Abfrage einbauen

Hey Leute ich hab da mal eine echt wichtige Frage, denn ich sitz schon 22 Tage dran:

Start End normaltime overtimetime

08:30:00 17:30:00 9 0
15:00:00 20:00:00 5 2,5
08:00:00 14:00:00 6 -3,5
14:00:00 19:00:00 5 1,5
08:30:00 17:30:00 9 0
08:30:00 18:30:00 10 1
44 1,5

Dies ist der ausschnitt meiner Abfrage, in die ich jetzt gern noch eine IF Then Else Anweisung einbauen wollen würde.

Denn Wenn der END Wert über 17:30 wandert, so sollen die Überstunden gezählt werden, klappt bis jetzt ja ganz gut, nur das er auch negative anzeigt, was ich nicht durch eine Bedingung weg bekomme, da sonst auch die normaltime stunden verschwinden. Und splitten der beiden geht nicht, da ein späteres Zusammenfügen nur Ärger gemacht hat.

Meine IF Then Else anweisung soll so aussehen:

normaltime:
If [End] > #17:30#
Then normaltime= Datdiff("n";[Start]; #17:30#)/60
Else normaltime = Datdiff("n";[Start]; [End])/60
wobei hier noch eine weitere verschachtelte if then else rein soll: AND if (datdiff("n";[Start];[End])/60)-1

(-1 wegen der 1nen stunde mittagspause)

overtime:

If [End] <= #17:30#
Then [overtime] = 0
Else Datdiff("n"; #17:30# ; [End])/60

Ich hoffe ihr habt verstanden was ich mein.

Liebe grüße azzido


Antwort schreiben

Antwort 1 von azzido vom 04.09.2019, 08:26 Options

hab ich doch was vergessen:

bei der verschachtelten if then else anwesung muss es natürlich heißen:

if Datdiff("n";[Start]; [End] )/60 > 5,5

(da von 12 bis 13:00Uhr Mittag ist, muss der Else wert der ersten if then else anw. größer als 5,5 Stunden sein) sonst:
Then: Datdiff("n";[Start];[End])/60 -1

Übrigens ist die /60 nur die Einheit um von Minuten auf Std umzurechnen.

Antwort 2 von MixMax vom 04.09.2019, 08:26 Options

hm... *rauch* also versuch doch einfach erstmal eine Spalte zu machen in der die größere Zahl von 0 oder END - #17:30#
So kann die Zahl nicht unter 0 sinken.


eventuell kannst du damit etwas weiterentwickeln:

SELECT zeit.start, zeit.end, CDate(end-start) AS dif, cdate(IIf([end]-#12/30/1899 17:0:0#>0,[end]-#12/30/1899 17:0:0#,0)) AS nach17, cdate(IIf([end]-start > #6:00:0#,#1:0:0#,0)) AS mehr6stdarbeitmittag
FROM zeit;

so - wenn mehr als #6:00:00 kannst du so auch 1:00:00 mittag abgreifen z.B.

Antwort 3 von MixMax vom 04.09.2019, 08:31 Options

nachtrag - rechne nicht in stunden und minuten, das umzurechnen ist zu aufwändig, rechne einfach mit dem Zeitwert für eine stunde #1:00:00# da du sonst 1/24 rechnen must als eine stunde (also Access rechnet ja in Tagen und als nachkommastelle die Uhrzeit)

Antwort 4 von azzido vom 04.09.2019, 08:40 Options

hey danke für die schnelle antwort, doch leider hab ich schon versucht mehrere Spalten daraus zu entwickeln, doch leider hat sich die db immer dabei selbst verarscht, denn einerseits sind dann einige Werte die keine overtime hatten rausgeflogen anderer seits sind manche Werte doppelt vorgekommen, da bei der overtime manchmal dann einfach ein Feld mit einem anderen gefüllt wurde.

Fast vergessen: den Startwert und Endwert gibt aber der Arbeiter von sich aus ein und damit musst ich ein bestimmtes Eingabeformat wählen.

Antwort 5 von MixMax vom 04.09.2019, 08:55 Options

ist start und endwert keine Uhrzeit?

bei der Abfrage kann man natürlich auch einfach die verschiedenen Spalten aufaddieren und als eine Spalte ausgeben lassen. Um damit addieren zu können, ist es aber wichtig, Datum/Zeitformat zu nehmen.

Antwort 6 von azzido vom 04.09.2019, 09:04 Options

End und Startwert sind natürlich Datum und Uhrzeit, doch weiß ich gerade mal gar nicht was du meinst.

sorry wenn ich mich anstelle wie ein Honk, aber ich sitz seit etwa 3 Tagen an der scheiße und hab nur noch ein Hals

Ähnliche Themen

Access Bericht mit mehreren Abfragen
golo108  19.01.2007 - 293 Hits - 7 Antworten

Access mit Excel verbunden und nun Abfrage
Katja2  20.08.2007 - 320 Hits - 1 Antwort

Excel Abfrage mit Verknüpfung von Daten aus 2 Mappen
willymo  29.10.2007 - 335 Hits - 6 Antworten

Access-Abfrage
Juventas  07.02.2008 - 197 Hits - 6 Antworten

access abfrage
lbw54  05.05.2008 - 152 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026