Antworten auf deine Fragen:
Neues Thema erstellen

Amtszeit abfragen

Phips_CH

Noch nicht viel geschrieben

Guten Tag zusammen

Ich habe eine Verknüpfungstabelle aus drei Tabellen (Tabellea, Tabelle b und Tabelle c)
In der Tabelle a steht der Name und die Adressangaben, in der Tabelle b stehe allemöglich Vorstandsämter und in Tabelle c steht alle Datum (jjjj.mm.dd) der Generalversammlungen.

Die Verknüpfungstabelle hat vier Spalten (ID, id_adressen,id_vorstand, id_datum)

Bei einer Änderung im Vorstand, Amt antreten, Amtzurücktreten, generier ich in der Verknüpfungstabelle einen Datensatz. Inid_adresse steht die ID aus Tabelle a in id_vorstand steht die ID aus Tabelle bund in id_datum steht die ID aus Tabelle c. in der Spalte anzurueck schreib ich„1“ für angetreten und „2“ für zurückgetreten.

Nun möchte ich die Amtsdauer abfragen.
In einer Schleife frag ich ab, wer hat wann ein Amt angetreten und wann ist erzurückgetreten.
Nun möchte ich die Anzahl der Jahre voneinander abziehen. (die ID ist nichtimmer der Reihe nach)

Schwieriger wird es dann wenn ich die Amtszeit abfragenmöchte, für die, die das Amt aktuell ausführen. Das heisst, ich hab einenDatensatz mit Amt angetreten aber nicht zurückgetreten. Dann soll der letzteDatensatz aus Tabelle c eingefügt werden.

Noch schwieriger wird es dann, wenn jemand mehrere Ämter hatte.Diese Zeit möchte ich auch abfragen.

Am Schluss möchte ich Anzahl Jahre zusammenzählen.

Kann mir da jemand helfen?

Gruss
Phips_CH
 

Duddle

Posting-Frequenz: 14µHz

AW: Amtszeit abfragen

Wie sieht dein Ansatz aus?
Wenn du weißt, wann jemand an- und zurückgetreten ist, nimmst du diese Daten und subtrahierst sie (per Datumsfunktion deiner Scriptsprache). Wenn es kein Austrittsdatum gibt, ist jetzt das Austrittsdatum und du verfährst genauso.


Duddle
 

pwfoto

Moin!

AW: Amtszeit abfragen

Ich gehe mal davon aus, dass es dir um eine Übersicht für dich geht, damit ihr die Neuwahlen planen könnt. Das würde ich komplett in Excel o.ä. machen. In einer Tabelle, in der nach einer Wahl die Daten eingetragen werden (Wahldatum, Amtszeit bis Datum, ...). Ich kenne keinen Verein, in dem man so über die wenigen Vorstandsmitglieder den Überblick verlieren würde.
Falls du auch die Mitglieder verwalten möchtest: es gibt spezielle, preiswerte Software für die Vereinsverwaltung.
 

Phips_CH

Noch nicht viel geschrieben

AW: Amtszeit abfragen

Hallo zusammen

Ich hab eine Abfrage, wo ich abfrage, wenn ein Amt angetreten hat. In einer weiteren frag ich den letzten Datensatz ab, der das letzte Datum beinhaltet.

In einer Schleife geb ich dann aus wer ein Amt je angetreten hat. in dieser Schleife frag ich dann ab wer von einem Amt zurückgetreten ist und gebe dies aus. Funktioniert auch so.

Nun möchte ich, wenn es keinen Datensatz gibt, die Schleife unterbrechen und an dieser Stelle das Ergebnis der zweiten Abfragen ( letztes Datum) ausgeben.

Ich hab gelesen das eine Abfrage innerhalb einer Schleife nicht gut sei, gibt es eine andere Lösung?

@pwfoto es get um eine übersicht, wer wie lange ein Amt ausgeführt hat. Die daten möchte ich in einer Datenbank speichern da ich sie möglichst zentral habe und immer auf dem neusten Stand.
Ich weiss, dass es dafür Softwaren gibt. aber erstens kosten diese und zweitens möchte ich dabei ja auch etwas lernen.

Gruss
Phips_CH
 

JPS

Nicht mehr ganz neu hier

AW: Amtszeit abfragen

Irgendwie verstehe ich deinen DB Aufbau und das daraus resultierende Problem nicht.

Hast Du 3 Tables????

Table 1: person mit
id_person (PK), name, alter, usw, usw

Table 2: amt
id_amt (PK), name_des_amtes, usw, usw, usw

und dann
Table 3(n zu m Beziehung):
id_person(FK), id_amt(FK), von, bis

Diese verbindene Tabelle mit der n zu m Beziehung muss sein, da ja eine Person mehre Ämter gehabt haben kann und ein Amt ja im laufe der Zeit von mehren Personen ausgeführt wurde.

Stimmt das mit dem deinem Aufbau überein?
 

Duddle

Posting-Frequenz: 14µHz

AW: Amtszeit abfragen

Kannst du bitte wie in deinem vorigen Thread die Struktur und ein anschauliches Beispiel zeigen? Falls notwendig, auch den relevanten derzeitigen Code.


Duddle
 

afr0kalypse

Allwissendes Karmameerschweinchen!

AW: Amtszeit abfragen

Hi Phips. Ich hatte dir bei deinem letzen Thread schon gesagt, dass du 3 tabellen erstellen solltest von denen eine das eintrittsdatum und das austrittsdatum als eigene felder hat.
so hast du folgende vorteile: 1. weniger datensätze ergo weniger ressourcen. 2. du kannst per sql mit einen datensatz via datediff oder date_sub die zeit zwischen amtsantritt und austritt berechnen. :)
 

Phips_CH

Noch nicht viel geschrieben

AW: Amtszeit abfragen

Langsam Frag ich mich, wieso ich für jede Äderung im Vorstand einen Datensatz erzeuge.
Ich weiss aber nicht mehr wieso ich mich damals dafür entschieden habe.

Hat es Vorteile wenn ich einen Datensatz erzeuge, wenn jemand ein Amt antritt und einen weiteren Datensatz wenn er vom Amt zurück tritt?
Oder wäre es sinnvoll die Datenbank-Tabelle anpasse indem ich die Spalte umbenenne zu Amt_angetreten und eine Spalte einfüge für Amt_zurückgetreten und einen Datensatz erzeuge, wenn jemand ein Amt antritt, und wenn er zurück tritt, ich den Datensatz aktualisiere, wenn er vom Amt zurück tritt?

Ich sehe jetzt grad vor lauter Bäumen den Wald nicht mehr. Wo liegen die Vor- resp. die Nachteile

Vielen Dank

Gruss
Phips_CH
 

JPS

Nicht mehr ganz neu hier

AW: Amtszeit abfragen

In dem Table Amt (oder wie immer der auch heißt) geht es um die Ämter und es ist nicht gut wenn man für den selben Eintrag (Amt von einer Person) doppelte Datensätze produzierst. Außerdem kannst Du ja nach deinem System nicht unterscheiden, ob es sich um die Antritts oder die Austrittszeit handelt, wenn Du nur den einzelnen Datensatz hast.
Der zweite Lösungsansatz ist aus meiner Sicht der einzig Richtige.
 

Phips_CH

Noch nicht viel geschrieben

AW: Amtszeit abfragen

Hallo JPS
ich hab in dieser Tabelle schon eine Spalte, wo ich eine 1 schreibe, wenn die Person das Amt antritt und eine 2 wenn die Person für das Amt zurücktritt.
Allerdings muss ich für eine Abfrage herausfinden, wer das Amt angetreten hat, es keinen weiteren Datensatz gibt, wo diese Person nicht von diesem Amt zurückgetreten ist.

Ich dacht mir wohl, ich sei so für möglichee Abfragen flexibler.
 

Duddle

Posting-Frequenz: 14µHz

AW: Amtszeit abfragen

Mein erster Ansatz wäre wohl: es gibt Ämter und Personen. Ein Amt kann von mehreren Personen besetzt werden, eine Person kann mehrere Ämter besetzen - also eine klassische n:m-Beziehung. Gleichzeitig hat die Relation "besetzt von" die Attribute von und bis, um die Zeiträume festzuhalten.

Das führt dann zu drei Tabellen: Amt, Person, AmtBesetztVonPerson (oder so), wobei letztere dann die Fremdschlüssel für Amt und Person sowie zwei Datumsangaben hat.


Duddle
 

JPS

Nicht mehr ganz neu hier

AW: Amtszeit abfragen

Duddle hat vollkommen recht und ich hatte Dir die drei Tables auch schon aufgezeigt. Das ist die einzige logische Lösung!

Erklärung dazu -> Es geht darum eine Normalisierung der DB zu erreichen, was dazu dienen soll Redundanzen (unnötige doppelte Datensätze) zu verhindern und die Konsistenz zu erhalten.
Beispiel -> Hättest Du nur 2 Tables - Person und Amt und in Amt wäre die id der Person und dort dann von- bis-Daten drin, hättest Du zwei Probelem - 1.) der Name des Amtes käme x mal vor (Redundanz) und 2.) würdest Du dann den Name eines Amtes abändern wollen, müsstest Du es x mal tun oder die Funktionalität der Datenbank (Konsistenz) wäre bedroht.
Genau so absurd ist es halt die eine bestimmte Amtszeit (ein logischer Datensatz) zwei mal abzulegen. (Antritt und Austritt).

Ich hoffe, es klingt logisch für dich....
 

Phips_CH

Noch nicht viel geschrieben

AW: Amtszeit abfragen

Versteh ich es richtig, dass ich besser meine Tabelle so umbaue, dass ich bei einem Amtsrücktritt den bestehenden Datensatz ändere.

Ich habe drei Tabellen. Amt, Name, und Datum.
Wenn jemand ein Amt antritt, erzeugte ich bis jetzt einen Datensatz mit der ID_Name, ID-Amt, ID_Datum und an_zurück 1 (für Amt angetreten)
Wenn diese Person von diesem Amt zurücktritt, erzeugte ich einen weiteren Datensatz mit dem einen Unterschied, dass bei an_zurck eine 2 (für Amt zurückgetreten) steht.

das ergibt natürlich doppelt so viele Datensätze. Das stimmt.
eine Abfrage für den aktuellen Amtsinhaber ist auch nicht ganz einfach.
Wäre bei Variante zwei auch einfacher.

Ich bin noch in der aufbaufase, daher ist ein Umbau noch mit relativ wenig Aufwand möglich.

Gruss
Phips_CH
 

Duddle

Posting-Frequenz: 14µHz

AW: Amtszeit abfragen

Ich habe drei Tabellen. Amt, Name, und Datum.
Nein, du hast vier Tabellen.

Auch ist "Datum" für mich keine Entität, die du abbilden musst, sondern ein Attribut (ein Datum als solches ist nicht wichtig, sondern etwas anderes was an diesem Datum passiert ist).

Ich gehe ganz stark davon aus, dass du deine Datenbank nicht nach irgendwelchen Regeln konstruiert hast, sondern frei Schnauze. So kommt man aber selten zu einem korrekten Modell, was wiederum später/in der Anwendung zu Problemen führt - wie du es ja selbst bereits merkst.


Duddle
 

JPS

Nicht mehr ganz neu hier

AW: Amtszeit abfragen

@Duddle wie kommst Du auf vier Tables?
Reichen nicht:
Table 1: person mit
id_person (PK), name, alter, usw, usw

Table 2: amt
id_amt (PK), name_des_amtes, usw, usw, usw

und dann
Table 3(n zu m Beziehung):
id_person(FK), id_amt(FK), von, bis

????
 

Duddle

Posting-Frequenz: 14µHz

AW: Amtszeit abfragen

Ich habe nicht 4 vorgeschlagen, sondern Phips_CH korrigiert insofern als er 4 statt genannt 3 Tabellen hat.


Duddle
 

Phips_CH

Noch nicht viel geschrieben

AW: Amtszeit abfragen

Ich hab vier Tabellen
Tabelle 1 mit den Namen, Adressen, etc
Tabelle 2 mit den Vorstandsämtern
Tabelle 3 mit den Daten der Generalversammlung

Die viere Tabelle ist die Verknüpfungstabelle.
Wo die ID's der drei Tabellen drin stehen.

Ich hab die Tabele jetzt so umgebaut das ich bei einem Amtsantritt einen Datensatz generiere und Amtsrücktritt den bestehenden Datsatz ändere.

Ich hab mir schon meine Gedanken gemacht. Auch die Datenbank hat eine Struktur und gewisse Regeln hab ich schon versucht einzuhalten. Aber da ich das alles selber erlent habe, und noch nicht so ganz fit darauf bin, sind halt gewisse Fehler in der Vorgehensweise.

Gruss
Phips_CH
 

Duddle

Posting-Frequenz: 14µHz

AW: Amtszeit abfragen

Aber da ich das alles selber erlent habe, und noch nicht so ganz fit darauf bin, sind halt gewisse Fehler in der Vorgehensweise.
Was ja kein Problem ist, solange du für Verbesserungsvorschläge offen bist.
Schau dir das an. Wenn du ein paar grundlegenden Regeln folgst und damit deine Situation modellierst, hast du quasi automatisch eine normalisierte Datenbank.


Duddle
 

Phips_CH

Noch nicht viel geschrieben

So ich hab die Tabelle angepasst.
nun ist es so, dass ich einen Datensatz generiere, wenn jemand ein Amt antritt, wenn er vom Amt zurücktritt, schreib ich in die Spalte zurückgetreten die ID der Tabelle mit den Datum.

Nun kann es aber vorkommen das eine Person mehrere Ämter ausübte.
so zum Beispiel: Amt 5 von Jahr 59 bis 61, Amt 2 von 61 bis 63 und 65 bis 59.
wenn eine Person nur ein Amt ausgeübt hat und davon zurückgetreten ist, schaffe ich es ohne weiteres, die Amtszeit abzufragen.
Auch wenn jemand noch nicht zurückgetreten ist, lese ich das Datum der kommenden GV aus und rechne mit diesem Datum.
Dann muss ich die Amtszeit durch zwei teilen und alle Ergebnisse zusammenzählen.

Gruss
Phips_CH
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben