Vorsicht knifflig -> sql

hallo

vielleicht könnt ihr mir ja helfen

ich habe eine tabelle IST_STUNDEN

tabelle:
teilprojekt_ID
ap_beschreibung = Arbeitspaket
mitarbeiter
datum
stunden
u freigabe (ja/nein)

jetzt möchte ich die manntage ermittelt haben (1 Manntag = 8 Stunden) pro datum und teilprojekt u ap_beschreibung jedoch von allen mitarbeitern zusammen u das nur unter der bediengung dass diese stunden freigegeben sind!

bedanke mich im voraus

lg sabrina

Moin, sabrina,

select teilprojekt_id, datum, sum(stunden)/8
from ist_stunden
where freigabe = „ja“
group by teilprojekt_id, datum

So weit nicht knifflig. Die Aussage

ap_beschreibung jedoch von allen mitarbeitern zusammen

hingegen verstehe ich nicht.

Gruß Ralf

Moin, sabrina,

select teilprojekt_id, datum, sum(stunden)/8
from ist_stunden
where freigabe = „ja“
group by teilprojekt_id, datum

So weit nicht knifflig. Die Aussage

ap_beschreibung jedoch von allen mitarbeitern zusammen

hingegen verstehe ich nicht.

die stunden sind pro mitarbeiter eingetragen und deswegen meinte ich die müssen alle zusammengefasst werden! hab i das besser ausgedrückt?
und folgendes noch , mein freigabe feld ist so ne checkbox womit wird denn das überhaupt initialisiert? durch 0 1 ? weil das hab i scho versucht und da spuckt er mir meiner meinung nach net wirklich alles aus ?! od irr i mich vl
aja u nebenbei danke danke für die schnelle antwort!

lg sabrina

noch dazu haben alle eingetragenen stunden ein bestimmtes datum und ist nihct pro datum sondern pro monat auszuwerten! weißt du vl wie das funktioniert? lg sabrina

was sagst dazu, stimmt das?

SELECT IST_Stunden.Teilprojekt_ID, Month(Datum) , Year(Datum) , sum(IST_Stunden.Stunden)/8
FROM IST_Stunden
WHERE (((IST_Stunden.Freigabekennzeichen)>=0))
GROUP BY Teilprojekt_ID, Month(Datum), Year(Datum);

lg sabrina

Hi sabrina

noch dazu haben alle eingetragenen stunden ein bestimmtes
datum und ist nihct pro datum sondern pro monat auszuwerten!
weißt du vl wie das funktioniert?

das hängt von Deiner Datenbank ab. In MS Access zB ersetzt Du
Datum jeweils durch year(datum) & month(Datum).

Gruß Ralf

was sagst dazu, stimmt das?

Probieren geht über Studieren.

Hi sabrina,

hab i das besser ausgedrückt?

nö.

mein freigabe feld ist so ne checkbox
womit wird denn das überhaupt initialisiert? durch 0 1 ?

Das weiß das Handbuch zur IDE. In härteren Foren liest man an der Stelle schonmal RTFM :smile:

Meine Überlegung wäre, dass eine Checkbox nur 2 Werte annehmen kann, da liegt true und false nahe. Muss aber nicht sein - RTFM.

Gruß Ralf

aufjedenfall nochmal danke für deine hilfe!

Hi sabrina,

noch ein Tipp am Rande:

Month(Datum), Year(Datum)

ist nie gut, weil der group by sich nach der Sortierung richtet. Stell Dir vor, die Auswertung erstreckt sich über längere Zeiträume, dann kommt da sowas raus:

01 2006
01 2007
01 2008

12 2005
12 2006
12 2007

Also entweder die Reihenfolge der Spalten vertauschen oder, was ich bevorzuge, gleich verketten als JJJJMM.

Gruß Ralf

danke für deine hilfe! hat mir wirklich geholfen

lg sabrina

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]