Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create views #396

Open
edigonzales opened this issue Apr 13, 2021 · 4 comments
Open

Create views #396

edigonzales opened this issue Apr 13, 2021 · 4 comments

Comments

@edigonzales
Copy link
Contributor

Falls im Modell Views definiert sind, sollen diese in der Datenbank erzeugt werden resp. das entsprechende SQL soll erzeugt werden.

Im ersten Schritt reicht das Rausfiltern von Attributen und von Zeilen.

@taetscher
Copy link

any news on this?

@edigonzales
Copy link
Contributor Author

Erster Schritt Unterstützung für Filtern von Attributen und Zeilen

Beispiel für das Filtern von Attributen:

CLASS Deckel EXTENDS BauwerksTeil =  
  ATTRIBUTE
    !!@ comment = "Form des Deckels"
    Deckelform: (     
      andere,
      eckig,
      rund,
      unbekannt
    );
    !!@ comment = "Abmessung des Deckels (bei eckigen Deckeln minimale Abmessung)"
    Durchmesser: SIA405_Base_Abwasser_LV95.Abmessung;
    !!@ comment = "Deckel mit Lüftungslöchern versehen"
    Entlueftung: (     
      entlueftet,
      nicht_entlueftet,
      unbekannt
    );
    !!@ comment = "Name der Herstellerfirma"
    Fabrikat: TEXT*50;
    !!@ comment = "Deckelhöhe"
    Kote: Base_LV95.Hoehe;
    !!@ comment = "Lage des Deckels (Pickelloch)"
    Lage: Base_LV95.LKoord;
    !!@ comment = "Quantifizierung der Genauigkeit der Lage des Deckels (Pickelloch)"
    Lagegenauigkeit: (     
      groesser_50cm,
      plusminus_10cm,
      plusminus_3cm,
      plusminus_50cm,
      unbekannt
    );
    !!@ comment = "Deckelmaterial"
    Material: (     
      andere,
      Beton,
      Guss,
      Guss_mit_Belagsfuellung,
      Guss_mit_Betonfuellung,
      unbekannt
    );
    !!@ comment = "Angabe, ob der Deckel mit einem Schlammeimer versehen ist oder nicht"
    Schlammeimer: (     
      nicht_vorhanden,
      unbekannt,
      vorhanden
    );
    !!@ comment = "Befestigungsart des Deckels"
    Verschluss: (     
      nicht_verschraubt,
      unbekannt,
      verschraubt
    );
END Deckel;

VIEW Deckel
  PROJECTION OF base~SIA405_ABWASSER_2020_LV95.SIA405_Abwasser.Deckel;
  =  
  ATTRIBUTE
    Attr1 :=base-> Lage;
    Attr2 :=base-> Lagegenauigkeit;
END Deckel;

@edigonzales
Copy link
Contributor Author

Erste Beispiele:

CREATE OR REPLACE VIEW alw_strukturverbesserungen_pub.strukturvrbssrung_massnahme_flaechen_v
AS SELECT strukturvrbssrung_massnahme.t_id,
    strukturvrbssrung_massnahme.t_ili_tid,
    strukturvrbssrung_massnahme.astatus,
    ....
   FROM alw_strukturverbesserungen_pub.strukturvrbssrung_massnahme
  WHERE strukturvrbssrung_massnahme.flaechengeometrie IS NOT NULL;
CREATE OR REPLACE VIEW afu_schadstoffbelastete_boeden_pub.schdstfflstt_bden_flugplatz_v
AS SELECT schdstfflstt_bden_flugplatz.t_id,
    schdstfflstt_bden_flugplatz.t_ili_tid,
    schdstfflstt_bden_flugplatz.geometrie,
    'Einzelfallerhebung'::text AS trennkriterium,
    'Flughafenareal'::text AS ausdehnung,
    'Pneu, Treibstoff'::text AS belastungsursache
   FROM afu_schadstoffbelastete_boeden_pub.schdstfflstt_bden_flugplatz
  WHERE schdstfflstt_bden_flugplatz.aktiv = true;

CREATE OR REPLACE VIEW afu_schadstoffbelastete_boeden_pub.schdstfflstt_bden_eisenbahn_v
AS SELECT schdstfflstt_bden_eisenbahn.t_id,
    schdstfflstt_bden_eisenbahn.t_ili_tid,
    schdstfflstt_bden_eisenbahn.geometrie,
    schdstfflstt_bden_eisenbahn.verkehrsfrequenz_txt,
    schdstfflstt_bden_eisenbahn.verdachtsstreifenbreite_txt,
        CASE
            WHEN schdstfflstt_bden_eisenbahn.verdachtsstreifenbreite::text = 'm_5'::text THEN '5m seitlich ab Schotterrand (die Darstellung ist nicht lagegenau)'::text
            WHEN schdstfflstt_bden_eisenbahn.verdachtsstreifenbreite::text = 'm_10'::text THEN '10m seitlich ab Schotterrand (die Darstellung ist nicht lagegenau)'::text
            WHEN schdstfflstt_bden_eisenbahn.verdachtsstreifenbreite::text = 'm_15'::text THEN '15m seitlich ab Schotterrand (die Darstellung ist nicht lagegenau)'::text
            ELSE 'kein Verdachtsstreifen '::text
        END AS verdachtsstreifenbreite,
    'Abrieb von Fahrleitungen, Stromabnehmern, Rädern, Schienen, Bremsbelägen'::text AS belastungsursache
   FROM afu_schadstoffbelastete_boeden_pub.schdstfflstt_bden_eisenbahn
  WHERE schdstfflstt_bden_eisenbahn.aktiv = true AND schdstfflstt_bden_eisenbahn.astatus::text = 'Verdachtsflaeche'::text AND schdstfflstt_bden_eisenbahn.flaechentyp::text <> 'Tunnelstrecke'::text AND (schdstfflstt_bden_eisenbahn.flaechentyp::text <> 'Verdachtsstreifen_entlang_Gleise'::text OR schdstfflstt_bden_eisenbahn.verdachtsstreifenbreite::text <> 'kein_Verdachtsstreifen'::text);

CASE würde ich ignorieren und umsetzen wollen. D.h. bei diesem Beispiel geht es nur um die WHERE-Clause.

@edigonzales
Copy link
Contributor Author

"LIKE":


CREATE OR REPLACE VIEW afu_wasserbewirtschaftung_pub.wassrbwrtschftung_grundwassereinbau_limnigraf_v
AS SELECT wassrbwrtschftung_grundwassereinbau.t_id,
    wassrbwrtschftung_grundwassereinbau.t_ili_tid,
    wassrbwrtschftung_grundwassereinbau.objektart,
    wassrbwrtschftung_grundwassereinbau.objekttyp_anzeige,
    wassrbwrtschftung_grundwassereinbau.objektname,
    wassrbwrtschftung_grundwassereinbau.objektnummer,
    wassrbwrtschftung_grundwassereinbau.technische_angabe,
    wassrbwrtschftung_grundwassereinbau.bemerkung,
    wassrbwrtschftung_grundwassereinbau.dokumente,
    wassrbwrtschftung_grundwassereinbau.geometrie
   FROM afu_wasserbewirtschaftung_pub.wassrbwrtschftung_grundwassereinbau
  WHERE wassrbwrtschftung_grundwassereinbau.objektart::text ~~ '%Limnigraf'::text;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants