从MySQL和SQL Server,我知道我可以“保存”选择如表:
Select * (Select * from Table) as tb.
我在Oracle中尝试了以下内容:
Select Firma, Nr,Tour from( SELECT
fahr.FIRMA FIRMA,
fahr.nr nr,
fahr.TOUR,
fahr.ausf_tag ausf_tag,
fahr.kunde kunde,
fahrp.artikel artikel,
fah.bezeichnung,
fa.fraktion_nr,
fahrp.eak_nr eak_nr,
fahrp.auftr_nr auftragsnummer,
fahrp.auftr_pos auftragsposition,
fahrp.auftr_upos auftragsunterposition,
NULL tourgewicht,
fahr.leistgort leistgort,
fahr.lo_gpname1 lo_gpname1,
fahr.lo_strasse lo_strasse,
fahr.lo_plz lo_plz,
fahr.lo_ort lo_ort,
fahr.fzg_nr,
fahr.pol_kennz,
fahrzfa.eigner,
TO_CHAR (fahr.start_zeit, 'HH24:MI:SS') start_zeit,
TO_CHAR (fahr.ende_zeit, 'HH24:MI:SS') ende_zeit,
fahr.kilometer,
fahr.Warenlager,
fahrp.Warenlager LAGER,
fahr.TOUR,
fahrp.KTR KTR,
fahr.faktura,
fahrp.rechnung faktura_pos,
fahr.abrechnung,
fahr.standort,
fahr.standort2,
skp_AUFTRAG_EK.rg_empf,
skp_AUFTRAG_EK.rg_empf_kz,
fahrp.preis_ueberschrieben,
skp_auftrag_ek.ds_branche,
FROM
skp_ARTIKEL_WARE_Z fa,
skp_ARTIKEL_Z fah,
skp_FAHRAUFTRAG fahr,
skp_FAHRAUFTRAG_POS fahrp,
skp_FAHRZEUG fahrzfa,
skp_FIRMA fahrfir,
skp_AUFTRAG_EK
WHERE
fahr.FIRMA = fahrp.FIRMA
AND fahr.nr = fahrp.nr
AND fahrp.FIRMA = skp_AUFTRAG_EK.FIRMA(+)
AND fahrp.auftr_nr = skp_AUFTRAG_EK.auftr_nr(+)
AND fahrp.artikel = fah.art_nr
AND fahr.FIRMA = fahrzfa.FIRMA(+)
AND fahr.fzg_nr = fahrzfa.fzg_nr(+)
And Fahr.Firma = Fahrfir.Firma
and fahrp.artikel = fa.art_nr(+)
and fahr.firma between 721 and 778
and fahr.ausf_tag >= to_date ('01.09.2017 00:00:00', 'DD.MM.YYYY HH24:MI:SS')
and fahr.ausf_tag <= to_date ('30.09.2017 00:00:00', 'DD.MM.YYYY HH24:MI:SS')) as d
但是我不行,我收到错误:00918。00000 - “列模糊定义”
我是Oracle新手而不是SQL神,所以有人知道什么是错的吗?
答案 0 :(得分:0)
此处的错误消息非常明确 - 您的SELECT
中有重复的列名称。从我看到的,它是TOUR
列 - 但请仔细检查,因为可能还有其他重复项。作为一般规则,在执行CREATE TABLE ... AS SELECT