Hallo,
ich möchte zu einer Stammtabelle aller Nutzungen nebeneinander sehen. Gibt es eine eleganter Methode, als die Untertabelle xmal zu joinen??
Ich habe drei Tabellen:
CREATE TABLE stamm
(
lfd_nr integer NOT NULL,
name character varying(10),
....
CONSTRAINT verwal_pkey PRIMARY KEY (lfd_nr))
- Eine Nutzungs-Typen-Tabelle
CREATE TABLE nutzung_typ(
nutzung smallint NOT NULL,
bezeichnung character(50),
CONSTRAINT nutz_typ_pkey PRIMARY KEY (nr)
)
- sowie eine Tabelle der verwandeten Nutzungen
CREATE TABLE nutzung
(
lfd_nr integer NOT NULL,
nutzung smallint NOT NULL,
menge integer,
CONSTRAINT nutzung_pkey PRIMARY KEY (lfd_nr, nutzung),
CONSTRAINT verwal FOREIGN KEY (lfd_nr)
REFERENCES stamm(lfd_nr) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT verwal FOREIGN KEY (nutzung )
REFERENCES nutzung_typ (nutzung ) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
Herauskommen soll:
lfd_nr (menge aus Nutzung1) (menge aus Nutzung2) (menge aus Nutzung3) ...
für alle möglichen Nutzungen aus der Tabelle nutzung_typ, auch für die, die nicht in der Tabelle nutzung verwandt worden.
Ich könnte zwar mit dem SQL
select lfd_nr, name, n1.menge as menge1, n2.menge as menge2, n3.menge as menge3
from stamm s
left join nutzung n1 on s.lfd_nr = n1.lfd_nr and nutzung = 1
left join nutzung n2 on s.lfd_nr = n2.lfd_nr and nutzung = 2
left join nutzung n3 on s.lfd_nr = n3.lfd_nr and nutzung = 3
arbeiten, aber ich habe 30 Nutzungen und finde das nicht so toll.
Kennt jemand eine Lösung???
Lesezeichen