У нас есть сценарий SQL, который создает CSV, используя следующие:Sub запрос с использованием Oracle 8i
SELECT DISTINCT auf_kopf.auf_nr, TO_CHAR(auf_kopf.erfass_dat,'DD/MM/YYYY'), TO_CHAR(auf_kopf.liefer_dat,'DD/MM/YYYY'), v_ord_custname.cust_name, auf_pos.auf_pos, v_auf_stat_0.anz, v_reason_code_1.reason_code, v_reason_code_1.reason_desc, v_auf_pos_vmat.glas1, auf_pos.glas2, auf_kopf.auf_off, auf_pos.ver_art
FROM auf_kopf, auf_pos, v_auf_pos_vmat, v_auf_stat_0, v_ord_custname, v_reason_code_1, glas_daten_basis
WHERE auf_kopf.erfass_dat >sysdate-7
AND auf_kopf.kopf_reason IS NOT NULL
AND (auf_kopf.auf_nr=auf_pos.auf_nr(+))
AND (auf_pos.auf_nr=v_auf_pos_vmat.auf_nr(+))
AND (auf_pos.auf_pos=v_auf_pos_vmat.auf_pos(+))
AND (auf_pos.variante=v_auf_pos_vmat.variante(+))
AND (auf_pos.auf_nr=v_auf_stat_0.auf_nr)
AND (auf_pos.auf_pos=v_auf_stat_0.auf_pos)
AND (auf_pos.variante=v_auf_stat_0.variante)
AND (auf_kopf.auf_nr=v_ord_custname.order_no)
AND (auf_kopf.auf_nr=v_reason_code_1.order_no(+));
Там есть таблица называется glas_daten_basis
, что содержит описания кодов, показанных от v_auf_pos_vmat.glas1
и auf_pos.glas2
. Как мы также показываем описание, так как я думаю, что требуется дополнительный запрос, но я не мог заставить его работать.
Нам необходимо glas_daten_basis.gl_bez
(описание) для v_auf_pos_vmat.glas1
и auf_pos.glas2
. Коды могут быть сопоставлены с использованием glas_daten_basis.idnr
и v_auf_pos_vmat.glas1
.
Похоже, что стандарт ANSI-89, вероятно, должен быть заменен стандартом ANSI-92 с INNER JOINs. Очень старый и устаревший код ... – twoleggedhorse
@twoleggedhorse - Oracle не добавлял поддержку ANSI-соединений до 9i; если OP действительно использует 8i, то они не являются опцией. Хотя это может быть наименьшее из их проблем ... –
@AlexPoole Какое решение? Можете ли вы отправить пример? – user2656114