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

Kampfgummibaerlie

Datenbank-Guru
Beiträge
731
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 ;)
 
Werbung:
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:
Werbung:
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 ;)
 
Zurück
Oben