Hier ist die SQL:Kann nicht Grund für „Spalte zweideutig definiert“ Fehler identifizieren
SELECT alloc.oa_id
FROM qdod.qtran_owner_allocation alloc
INNER JOIN
(SELECT h.oa_id, h.div_ord_no, h.process_queue_id, h.from_ba_no,
h.from_ba_suf, h.from_interest_type_cd, h.from_interest_type_cd, h.from_div_ord_grp,
h.transfer_percent, h2.original_net_amount, h2.new_net_amount
FROM qdod.qtran_fund_transfer_hist h
INNER JOIN
(SELECT DISTINCT h0.oa_id, h0.original_net_amount, h1.new_net_amount
FROM qdod.qtran_fund_transfer_hist h0
INNER JOIN
(SELECT h4.oa_id, SUM (h4.new_net_amount) AS new_net_amount
FROM qdod.qtran_fund_transfer_hist h4
GROUP BY h4.oa_id) h1
ON h0.oa_id = h1.oa_id
WHERE h0.original_net_amount <> h1.new_net_amount AND h0.oa_id >= 100000000) h2
ON h.oa_id = h2.oa_id) h3
ON alloc.oa_id = h3.oa_id;
Jede Spalte hat seine Tabelle definiert. Der innere Hauptjoin (der nach der Zuordnungstabelle) läuft gut, wenn er selbst ausgeführt wird. Irgendwelche Ideen, warum das nicht funktioniert? Dies wird gegen eine Oracle 10.2.0.4 Datenbank ausgeführt (ich habe es auch mit einer 11.2.0.1 Datenbank versucht, wenn ich denke, dass es sich um einen Oracle-Bug handelt, der in 11.2 behoben wurde, aber auch dort fehlgeschlagen ist).
+1 Gutes Auge. Wie in [meine Antwort] (http://stackoverflow.com/questions/4268140/cant-idenfity-reason-for-column-ambiguous-defined-error/4268305#4268305) hingewiesen, denke ich nicht, diese Spalte sogar muss ausgewählt werden. –