1.8k Aufrufe
Gefragt in Datenbanken von
Hallo,
Ich möchte eine Abfrage erstellen welche mir die aktuellen Auslastungsquoten im jeweiligen Monat anzeigt.
Es geht um ein Mietshaus in dem Räume vermietet werden die Abfrage greift auf 2 Tabellen zurück.
tbl_wohnung
tbl_mieter

folgende Daten sind dafür relevant
tbl_wohnung
wohnungs_nr
mietername (wird sich aus der mietertabelle gezogen)

tbl_mieter
mietbeginn
mietende

jetzt ist das Probleme folgendes:
Ich weiß nicht wie ich Access beibringe das er an Hand des Zeitraums aus Mietbeginn und Mietende den jeweiligen Monat den ich eintrage (und natürlich auch das Jahr) die quote ausspuckt.
Mir geht es hier erstmal nur um dieses Zeitraum Problem die Berechnung werde ich dann alleine hinbekommen.

Vielen Dank für die Hilfe

6 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo christian_s123,

die Angaben sind etwas spärlich. Deshalb noch ein paar Fragen:

1.deine Tabelle tbl_mieter hat eine Beziehung zur Tabelle tbl_wohnung? Wie lautet die?
2. die Felder Mietbeginn und Mietende haben den Typ date?
3. Mit "Quote" meinst du Anzahl der Mietresttage des Anfangmonats dividiert durch die Anzahl der Tage des Anfangmonats, beim Endemonat die Anzahl der Miettage durch die Anzahl der Gesamttage des Endemonats?
4. Wie siehst du das Problem, wenn Anfangmoant = Endemonat, wenn 3 zutrifft?
5. Gilt 3 und 4 auch beim Jahresbezug?

Gruß
Ralf
0 Punkte
Beantwortet von
Hallo,
erstmal danke das du dich meinem Problem annehmen willst.

hier nun die Infos
zu 1) Beziehung tbl_mieter (1) zu tbl_wohnung (n)
2) ja haben sie
3) mit quote meine ich da die Zahl der Wohnung ja fest ist. Wie viele Wohnung sind dann zum aktuellen Zeitpunkt vermietet bzw. Wie ist die Mietlage in 1, 2, oder 3 Monaten zum Beispiel.
Also Zahl der vermieteten Wohnung durch Zahl aller Wohnung zu einem gewissen Zeitpunkt
4) Anfangs- und Endmonat treffen nicht zusammen. Also nicht im selben Jahr von daher unproblematisch
5) Das kann vorkommen. Aber da du ja glaube eine andere Formel für die Auslastung verwendet hast, müßte dieses Problem auch keine Bedeutung haben.

Vorrausgesetzt ich hab dich richtig verstanden. Als Anmerkung bei den Mieter gibt es quasi noch ein Dummy der Nicht-vermietet heißt.

Vielen Dank schon mal.

Gruß Christian
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo christian_s123,

noch ein paar Detailfragen. Ich hoffe das nervt nicht, aber ein Problem sollte man genau verstehen, bevor eine erste Abfrage erstellt oder Zeile programmiert wird:

zu 1: wenn ich dich jetzt richtig verstehe, mietet ein MIETER ein oder mehrere WOHNUNGEN zum gleichen oder zu unterschiedlichen Zeitpunkten, korrekt so, sonst würde die 1/0:n-Beziehung keinen Sinn machen. WOHNUNGEN können also auch leer stehen.

zu 2: Gemietet wird immer monatsweise? Es ist also beim Datum hauptsächlich Monat und Jahr wichtig, nicht (unbedingt) der Tag?

zu 3: ist die Vorausschau eher fest? Und sind die Wohnungen gleich gewichtet (Einheit Wohnung) oder nicht (z.B. nach unterschiedlichen Monatsmieten)?

4 und 5 glaube ich, sind jetzt klar.

Wenn du mir diese Fragen noch beantworten könntest, würde ich dir was "zusammenstricken". Wenn es etwas elegant werden sollte, kommst du um ein wenig VBA nicht drum herum, ist aber halb so schlimm.

Gruß
Ralf
0 Punkte
Beantwortet von
Hallo,
ne das nervt nicht bin natürlich auch dankbar das mir jemand hilft.
1) komplett richtig verstanden und stimmt genauso wie du es dargestellt hast
2)also der Vetrag geht standardmäßig über ein Jahr aber man kann auch früher natürlich wieder raus aber minimum 1 Monat. Du kannst davon ausgehen das die Mieter schon mindestens 1 Jahr drinne bleiben
3) die Wohnungen sind unterschiedlich gewichtet. Über den Mietpreis der aber eigentlich für diese Abfrage egal sein müßte da es wirklich nur um die Anzahl der Wohnungen geht. Aber wenn du willst kannst du das natürlich noch mit einbauen.

So ein bisschen mit VBA kenne ich mich auch aus und für mich käme glaube nur die Halbwegs elegant Form in Betracht, von daher Frage ich ja an =)


Vielen Dank und Gruß
Christian
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Christian,

ich habe vierTabellen definiert:

tblMieter:
ID Autowert
Mietername Text

tblWohnung:
ID Autowert
wohnungsNr Zahl
Miete Währung

tblVermietungen:
ID Autowert
WohnungID zahl
MieterID zahl
mietbeginn date
mietende date

tblDatum:
ID autowert
DatumDate
vermieteteWohnungen zahl
verbietungswert Währung

Bei den Beziehungen habe ich zwei Verknüpfungen mit referenzieller Integrität eingetragen zwischen tblMieter.ID - tblVerbietungen.MieterID und zwischen tblWohnung.ID - tblVerbietungen.WohnungID
Die Tabelle tblDatum habe ich mit den Monaten (jeweils der erste des Monats) gefüllt, für die ich eine Auswertung haben möchte.

Weiterhin gabe ich eine Abfrage "abfVerbietungen"
SELECT tblMieter.Mietername, tblVermietungen.mietbeginn, tblVermietungen.mietende, tblWohnung.Miete
FROM tblWohnung INNER JOIN (tblMieter INNER JOIN tblVermietungen ON tblMieter.ID = tblVermietungen.MieterID) ON tblWohnung.Id = tblVermietungen.WohnungID;
definiert. Mit der Prozedur
Public Sub Vermietungsauslastung()

Dim recDate As New ADODB.Recordset

recDate.Open "SELECT * from tblDatum", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
While Not recDate.EOF
recDate!vermieteteWohnungen = DCount("*", "abfVermietungen", Format(recDate!Datum, "YYYYMM") & " between format(mietbeginn,'YYYYMM') and format(mietende,'YYYYMM')")
recDate!vermietungswert = Nz(DSum("Miete", "abfVermietungen", Format(recDate!Datum, "YYYYMM") & " between format(mietbeginn,'YYYYMM') and format(mietende,'YYYYMM')"), 0)
recDate.Update
recDate.MoveNext
Wend
recDate.Close
End Sub
habe ich die Tabelle tblDatum mit den berechneten Werten gefüllt und die Abfrage "Auslastung"
SELECT tblDatum.Datum, tblDatum.vermieteteWohnungen, tblDatum.Vermietungswert, [vermieteteWohnungen]/DCount("*","TblWohnung") AS Ausllasungsfaktor, [Vermietungswert]/DSum("Miete","tblWohnung") AS MonitaererFaktor
FROM tblDatum;
gibt mir die Werte zurück, die du suchst.

Hast du dir das so vorgestellt?

Gruß
Ralf
0 Punkte
Beantwortet von
Hallo Ralf,
Also die Abfrage zum Schluss ist nicht ganz so wie vorgestellt. Aber durch die Prozedur habe ich denke den Baustein der mir gefehlt hat. Muss es mal die Tage in die komplette DB einbauen und dann umbauen. Aber du ahst mir sehr geholfen. Vielen Dank für deine Hilfe und für deine Zeit.
Wenn noch etwas ist melde ich mich nochmal aber ich glaube das Formen der Abfrage nach meinen Wünschen kriege ich alleine hin.

Gruß und vielen Dank noch mal

Christian
...