Fänerk Geschrieben 27. Mai 2010 Teilen Geschrieben 27. Mai 2010 (bearbeitet) hallo, ich habe eine Access Datenbank mit 6 Tabellen: Stammdaten => ID-Stammdaten => Nachname => Lohngruppe-ID => Alter-ID => Geschlecht-ID Lohngruppe => ID-Lohngruppe => Tarifbeschäftigte h.D. => ... Alter => ID-Alter => <=35 => 36-45 => ... Geschlecht => ID-Geschlecht => M/W Krankheitstage => ID-Krankheitstage => Stammdaten-ID => 1. Tag krank (Datum) => letzter Tag krank (Datum) => Anzahl Werktage das ganze muss ich machen, für eine Gesundheitsstatistik.... so, das war kein Problem, auch das anlegen von 2 Masken (einmal für komplett neue Anlage, einmal für neue Krankheit) war auch kein Problem. jetzt kommen die Abfragen. es werden 120 Abfrage, welche sich alle ähneln, aber keine komplett gleich ist. z.B. die Abfrage nach Anzahl beschäftigte gesamt (die habe ich schon fertig) oder Krankheitstage zwischen 1 und 3 ich habe jetzt 8 Abfragen fertig, welche sich alle nur auf die Tabelle Krankheitstage beziehen. (die gesamt anzahlen usw) jetzt muss ich noch die speziellen abfragen machen, also z.B.: Anzahl Krankheitstage gesamt männlich mein Ansatz dazu war folgender: SELECT sum([Anzahl Werktage]) AS [Krankheitstage männlich gesamt] FROM Krankheitstage, Stammdaten WHERE Geschlecht like "1"; männlich steht in der Tabelle Geschlecht im Datensatz 1, daher da die 1 wenn ich das ausführe, bekomme ich bei meinen Beispieldaten 243 raus, was nicht stimmt. kurz mal ein paar infos zu den daten: Anzahl Werktage gesamt= 81 Anzahl Beschäftigte = 6 Anzahl Krankheitstage männlich gesamt (sollte sein)= 33 ich weiß auch, was bei meinem Ansatz gerechnet wird, weiß aber nicht wieso und wie ich das weg bekomme (Anzahl Werktage gesamt 81 * Anzahl der männlichen Test-Personen 3 = 243) ich habe auch folgendes versucht: SELECT sum([Anzahl Werktage]) AS [Krankheitstage männlich gesamt] FROM Krankheitstage, Stammdaten, Geschlecht WHERE [Geschlecht.M/W] like "männlich"; dabei aber das gleiche ergebnis... kann mir einer weiterhelfen? ich weiß nicht, was an der Abfrage falsch ist und finde auch online nichts dazu... und in der form sind auch die restlichen 110 abfragen, welche ich noch erstellen muss... die gehen dann alle in die untertabellen von Stammdaten, also da müssen die die Bedingung her holen... wenn ihr noch ein paar angaben braucht, dann meldet euch.. oder wenn irgendwas nicht gescheit erklärt ist... Bearbeitet 27. Mai 2010 von Fänerk Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 27. Mai 2010 Teilen Geschrieben 27. Mai 2010 Warum Du für Geschlecht eine eigene Tabelle hast, ist mir etwas schleierhaft, denn das kann in den Personendatensatz rein, da es nur 2 Möglichkeiten gibt (bzw. rein juristisch müsste es z.B. in Australien noch "neutral" geben). Du wirst auch ein Problem mit Deiner Alter-Tabelle bekommen, denn das Alter ist vom Geburtsdatum abhängig, d.h. wer letztendlich in welche Gruppierung fällt ist vom aktuellen Tag, an dem die Statistik erstellt wird, abhängig. Zu Deinen beiden Abfragen: Du musst einen Join von jedem Datensatz zu der Geschlechtsentity erzeugen, denn Du willst ja prüfen, ob ein Datensatz männlich oder weiblich ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fänerk Geschrieben 27. Mai 2010 Autor Teilen Geschrieben 27. Mai 2010 mit dem alter das ist klar. die statistik soll jetzt erstellt werden und da ist jeder eindeutig einzuordnen. mit dem geschlecht muss ich dir recht geben, dass hätte ich auch im stammdaten drin lassen können. es ist zwar nicht mehr wichtig, da mein ausbilder jetzt sagte, dass wir das anders machen und nicht mit einer datenbank, wo alle eingegeben werden sollen. er will das jetzt so machen, dass aus der gleitzeitinfo die krankheitstage angezeigt werden, ausdrucken und dann soll die sekreterien vom chef das rausschreiben aber damit ich das selbst verstehe wir müsste das denn aussehen, wenn ich jetzt alle Krankheitstage zwischen 1-3 Tagen von männlichen Beschäftigten haben will? ich glaube mich da an was aus dem unterricht zu erinnern und habe gerade folgendes als Beispiel: SELECT sum([Anzahl Werktage]) AS [Krankheitstage 1-3 männlich] FROM Krankheitstage, Stammdaten, Geschlecht WHERE Krankheitstage.Stammdaten-ID = Stammdaten.ID-Stammdaten Stammdaten.Geschlecht-ID = Geschlecht.ID-Geschlecht [Anzahl Werktage] BETWEEN 1 and 3 [Geschlecht.M/W] like "männlich"; ich habe das gerade nicht getestet, da ich an einem anderen pc bin, werde das gleich aber. das müsste so egtl funktionieren, wenn nicht vllt ein paar [] um die Tabellen.Felder fehlen... schonmal danke und verbessert mich, wenn die abfrage falsch ist... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fänerk Geschrieben 27. Mai 2010 Autor Teilen Geschrieben 27. Mai 2010 die neugier war gerade doch zu groß... hier die korrigierte abfrage (es fehlten ein paar kleinigkeiten): SELECT sum([Anzahl Werktage]) AS [Krankheitstage 1-3 männlich] FROM Krankheitstage, Stammdaten, Geschlecht WHERE [Krankheitstage.Stammdaten-ID] = [Stammdaten.Stammdaten-ID] AND [Stammdaten.Geschlecht] = [Geschlecht.Geschlecht-ID] AND [Anzahl Werktage] BETWEEN 1 and 3 AND [Geschlecht.M/W] like "männlich"; das funktioniert so, danke für den Denkanstoß !!!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.