Abfrage Personen und freie Wohnungen

trinitarias

Neuer Benutzer
Beiträge
1
Hallo,
ich habe zwei Tabellen:
eine Tabelle Person mit den Beziehungen 'Nutzer von' und 'Reservieren von'
und Wohnung mit dem Feld "Belegungsstatus".
Ich brauche nun eine Abfrage mit allen Personen, die Nutzer von einer Wohnung sind und die eine Wohnung reserviert haben. Es sollen aber auch die Wohnungen aufgelistet werden, die noch frei sind.

Hier der SQL-Code, den ich bisher erstellt habe.
Bei dieser Ansicht werden nur die Datensätze aufgelistet, bei denen es eine Beziehung zwischen Person und Wohnung gibt. Nicht aber, logisch, nicht auch alle anderen Wohnungen.

CREATE VIEW vWohnungEinlage
AS
SELECT dbo.Wohnung.wohn_WohnungID, dbo.Wohnung.wohn_CreatedBy, dbo.Wohnung.wohn_CreatedDate, dbo.Wohnung.wohn_UpdatedBy, dbo.Wohnung.wohn_UpdatedDate, dbo.Wohnung.wohn_TimeStamp,
dbo.Wohnung.wohn_Deleted, dbo.Wohnung.wohn_Secterr, dbo.Wohnung.wohn_Name, dbo.Wohnung.wohn_WorkflowId, dbo.Wohnung.wohn_anteile, dbo.Wohnung.wohn_belegstatus,
dbo.Wohnung.wohn_betriebskostenqm, dbo.Wohnung.wohn_betriebskostenqm_CID, dbo.Wohnung.wohn_einlage, dbo.Wohnung.wohn_einlage_CID, dbo.Wohnung.wohn_gesamtmiete,
dbo.Wohnung.wohn_gesamtmiete_CID, dbo.Wohnung.wohn_wohnflaeche, dbo.Wohnung.wohn_heizqm, dbo.Wohnung.wohn_heizqm_CID, dbo.Wohnung.wohn_betriebskostenmtl,
dbo.Wohnung.wohn_betriebskostenmtl_CID, dbo.Wohnung.wohn_heizmtl, dbo.Wohnung.wohn_heizmtl_CID, dbo.Wohnung.wohn_mietekaltmtl, dbo.Wohnung.wohn_mietekaltmtl_CID,
dbo.Wohnung.wohn_mietekaltqm, dbo.Wohnung.wohn_mietekaltqm_CID, dbo.Wohnung.wohn_projectid, dbo.Wohnung.wohn_wbs, dbo.Wohnung.wohn_zimmer, dbo.Wohnung.wohn_info,
dbo.Wohnung.wohn_etage, dbo.Wohnung.wohn_keller, dbo.Wohnung.wohn_gesamtmietestellp, dbo.Wohnung.wohn_gesamtmietestellp_CID, dbo.Wohnung.wohn_stellplatz, dbo.Wohnung.wohn_stellpmiete,
dbo.Wohnung.wohn_stellpmiete_CID, dbo.Wohnung.wohn_hausnr, dbo.Wohnung.wohn_gebteil, dbo.Wohnung.wohn_reli, dbo.Wohnung.wohn_gaestewc, dbo.Wohnung.wohn_dachboden,
dbo.Wohnung.wohn_dachbodennr, dbo.Wohnung.wohn_treppenhaus, dbo.Wohnung.wohn_treppenhausnr, dbo.Wohnung.wohn_abstellraum, dbo.Wohnung.wohn_wbsdatum, dbo.Wohnung.wohn_keinFeld,
dbo.Wohnung.wohn_stellplatzAnzahl, dbo.Person.Pers_FirstName, dbo.Person.Pers_LastName, dbo.Person.Pers_PersonId, dbo.Person.pers_wbs, dbo.Person.pers_nvv, dbo.Person.pers_beitrittserkl,
dbo.Person.pers_businessguthaben, dbo.Person.pers_businessguthaben_CID, dbo.RelatedEntityData.rend_relatedentitylinkid
FROM dbo.RelatedEntityData INNER JOIN
dbo.RelatedEntityLinks ON dbo.RelatedEntityData.rend_relatedentitylinkid = dbo.RelatedEntityLinks.REnL_RelatedEntityLinkID LEFT OUTER JOIN
dbo.Wohnung ON dbo.RelatedEntityData.rend_entity2id = dbo.Wohnung.wohn_WohnungID RIGHT OUTER JOIN
dbo.Person ON dbo.RelatedEntityData.rend_entity1id = dbo.Person.Pers_PersonId
WHERE (dbo.Wohnung.wohn_Deleted IS NULL) AND (dbo.RelatedEntityData.rend_relatedentitylinkid IN ('6012', '6013'))

Die Joint Anweisungen sind ziemlich willkürlich, weil ich alles mögliche ausprobiert habe. Wäre schön, wenn sich das mal jemand ansehen könnte.

Viele Grüße
Trinitarias
 
Werbung:
ich habe zwei Tabellen:
eine Tabelle Person mit den Beziehungen 'Nutzer von' und 'Reservieren von'
und Wohnung mit dem Feld "Belegungsstatus".
Ich brauche nun eine Abfrage mit allen Personen, die Nutzer von einer Wohnung sind und die eine Wohnung reserviert haben. Es sollen aber auch die Wohnungen aufgelistet werden, die noch frei sind.

Falsches Datenmodel. Du brauchst 3 Tabellen:

  • Personen mit ihren Namen etc.
  • Wohnungen mit ihrer Adresse etc.
  • eine Belegungstabelle

Code:
test=# create table personen(p_id int primary key, name text);
CREATE TABLE
test=# create table wohnungen (w_id int primary key, name text);
CREATE TABLE
test=# create table buchungen (wohnung int references wohnungen, personen int references personen, belegt daterange);
CREATE TABLE
test=#

Mal so als Einstiegspunkt.
 
Zurück
Oben