Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Alle Datensätze durch eine Function gezogen in einer View anzeigen

Dieses Thema im Forum "PostgreSQL" wurde erstellt von Kampfgummibaerlie, 26 Juni 2017.

  1. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Ich bin jetzt soweit, und würde gerne alle Datensätze durch eine Funktion ziehen, und alle "Resultate" anzeigen lassen.

    Gibt es in PostgreSQL irgendeine Möglichkeit, dass man mit einer Function alle Datensätze anzeigt, die es gibt?

    Oder muss ich dazu wieder eine eigene Function schreiben, welche einfach alle Datensätze nimmt? :X

    Wenn der letzte Punkt geht, bin ich noch lernfähig genug xD
    *direkt mal probiere*, wäre aber natürlich sehr dankbar über Hilfeleistungen von euch ;)
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Einfach ein Select aller Spalten ohne eine Where-Condition. Dazu ist theoretisch keine Funktion nötig.
     
  3. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Ich scheine irgendwo den falschen Typ zu haben ......

    Code:
    CREATE VIEW Mietungen AS SELECT mietabrechnung(miet_id) FROM vermietungen;
    
    Error:
    ERROR: column "mietabrechnung" has pseudo-type record ********** Error ********** ERROR: column "mietabrechnung" has pseudo-type record SQL-Status: 42P16

    Ich will aber nicht die column mietabrechnung, sondern die Function wählen (oder schreibt er das nur so, macht aber eh das richtige(?))

    EDIT:

    hier der code über welchen ich die Function erstellt habe:

    Code:
    create or replace function mietabrechnung(x int)
    returns table (Mietzeit tsrange, Mietdauer interval, Mietkosten float8)
    as $$ select mietzeit, tsrange_diff(mietzeit), tsrange_diff_kostenrechnung(mietzeit)
    from vermietungen where miet_id=x $$ language sql;
    

    Er gibt mir offenbar nur die Fehlermeldung an, hat aber die View erstellt......
    (also, ich finde jedenfalls die View, mal schauen, obs auch funktioniert, wie ichs einsetzen möchte ;D)

    Narf, ich überblicke es jetzt schon nichtmehr xD
     
    Zuletzt bearbeitet: 26 Juni 2017
  4. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    nach ein wenig spielen, habe ich es irgendwie hinbekommen:

    Code 1:
    Code:
    create or replace function all_mietabrechnungen(x int) returns table (miet_id integer, Mietzeit tsrange, Mietdauer interval, Mietkosten float8) 
    as $$ select miet_id, mietzeit, tsrange_diff(mietzeit), tsrange_diff_kostenrechnung(mietzeit) from vermietungen $$ language sql;
    
    Code 2:
    Code:
    CREATE VIEW mietungen AS SELECT * FROM all_mietabrechnungen2(1) WHERE date(lower(mietzeit)) >= current_date;
    
    Code 3 (Test):
    Code:
    select * from public.mietungen
    
    funktioniert auch ;)
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden