SQL View Erstellung
Hallo Administrator Support,
ich habe mir ein SQL-Statement für eine Lagerverwaltung erstellt. Dieses SQL Statement funktioniert auch wunderbar. Nur wenn ich mir aus dem SQL-Statement eine view mit create view xx as und danach den code von unten erzeugen möchte. Bekomme ich den Fehler ORA-00998 Dieser Ausdruck braucht einen Spalten Alias. Leider bekomme ich nicht die Info welche Zeile es genau ist...
Vl. hatte jemand bereits so etwas ähnliches. Für jede Hilfe bin ich dankbar
ich habe mir ein SQL-Statement für eine Lagerverwaltung erstellt. Dieses SQL Statement funktioniert auch wunderbar. Nur wenn ich mir aus dem SQL-Statement eine view mit create view xx as und danach den code von unten erzeugen möchte. Bekomme ich den Fehler ORA-00998 Dieser Ausdruck braucht einen Spalten Alias. Leider bekomme ich nicht die Info welche Zeile es genau ist...
Vl. hatte jemand bereits so etwas ähnliches. Für jede Hilfe bin ich dankbar
create view xx as
select rownum as sorter, myview.* from (
select *
from
(select
ftree.connect_by_root_kc as BASIS_RUECKMELDE_NR,
pfsp.RUECKMELDE_NR
,pfsp.RUECKMELDE_POSITIONS_NR
,pfsp.KOMPONENTEN_ARTIKEL_NR as ARTIKEL_NR
,pfsp.ENTNAHME_MENGE
from cprec_pfak_tree ftree
inner join pfsp on pfsp.rueckmelde_nr = ftree.rueckmelde_nr_kc
where (ftree.basis_rueckmelde_nr_kc = ftree.connect_by_root_kc or ftree.basis_rueckmelde_nr_kc = 0)
--and ftree.connect_by_root_kc = 30059276
) stueckliste
left join
(select
lagerort
,artikel_nr as ARTIKEL_NR
,chargen_serien_nr
,null as lagerbereich
,null as koordinate_1
,null as koordinate_2
,null as koordinate_3
,null as koordinate_4
,'20991231' as letzter_zugang
,menge_1 as bestandsmenge
from pmlb
where lagerort = '11002' or lagerort = '11003'
union
select
lpbe.lagerort
,lpbe.artikel_nr as ARTIKEL_NR
,lpbe.chargen_serien_nr
,lpbe.lagerbereich
,lpbe.koordinate_1
,lpbe.koordinate_2
,lpbe.koordinate_3
,lpbe.koordinate_4
,lpbe.letzter_zugang
,lpbe.bestandsmenge as bestandsmenge
from lpbe
where lpbe.lagerort = '11000'
) lagerplaetze
on stueckliste.artikel_nr = lagerplaetze.artikel_nr
--and lagerplaetze.bestandsmenge >= stueckliste.entnahme_menge
order by
stueckliste.BASIS_RUECKMELDE_NR,
lagerplaetze.lagerort asc
,lagerplaetze.lagerbereich
,lagerplaetze.koordinate_1
,lagerplaetze.koordinate_2
,lagerplaetze.koordinate_3
,lagerplaetze.koordinate_4
,stueckliste.RUECKMELDE_NR
,stueckliste.RUECKMELDE_POSITIONS_NR ) myview
;
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5922479461
Url: https://administrator.de/forum/sql-view-erstellung-5922479461.html
Ausgedruckt am: 15.06.2025 um 15:06 Uhr
3 Kommentare
Neuester Kommentar
Du solltest generell in produktivem Code niemals mit * als Spaltenplatzhalter arbeiten, dann hättest du das Problem jetzt übrigens auch nicht 
Ich bin nicht mit Oracle vertraut aber ich vermute das es in dem ganzen Wirwarr von Spalten und SELECT * FROM SELECT * Spaltennamen doppelt gibt. Das funktioniert in der Ausgabe vom SQL Client eventuell aber eine View braucht immer auch einen eindeutigen Namen für jede Spalte.
PS: Achja ORDER BY ist in Views auch nicht zulässig, wozu auch.
Ich bin nicht mit Oracle vertraut aber ich vermute das es in dem ganzen Wirwarr von Spalten und SELECT * FROM SELECT * Spaltennamen doppelt gibt. Das funktioniert in der Ausgabe vom SQL Client eventuell aber eine View braucht immer auch einen eindeutigen Namen für jede Spalte.
PS: Achja ORDER BY ist in Views auch nicht zulässig, wozu auch.
Zitat von @spezibua:
Bekomme ich den Fehler ORA-00998 Dieser Ausdruck braucht einen Spalten Alias. Leider bekomme ich nicht die Info welche Zeile es genau ist...
Oracle Datenbank?Bekomme ich den Fehler ORA-00998 Dieser Ausdruck braucht einen Spalten Alias. Leider bekomme ich nicht die Info welche Zeile es genau ist...
Version?
Vielleicht hilft mal zu lesen https://www.morganslibrary.org/reference/views.html
Gruß,
Peter