2017-06-03 25 views
0

サブクエリ結合リターン・エラー。サブクエリ・テーブルが見つかりませんでした。助けてくれてありがとう!Oracle SQL結合サブクエリdblink

私は2つのテーブルを持っています。 1つは正常なものです。 ops_owner.track_mail_item。 もう一つは、それがどのように動作するかのdblink(わからないですが、私は。私はキーとしてtmi_uid作るためにサブクエリを実行したい)のdblink表はキー(tmi_uidとevent_idのように複数の列を持っているので、それは

SELECT TRUNC(event_date,'HH24'), 
     tmi_uid 
    FROM [email protected]_track 
    WHERE event_id ='158' 
    AND event_date BETWEEN to_date('04/01/2017 12:00:01 AM', 'MM/DD/YYYY HH12:MI:SS AM') AND to_date('04/30/2017 11:59:59 PM', 'MM/DD/YYYY HH12:MI:SS PM') 

の作品次の実行します私はその後で使用することができますしかし、私はエラーを以下を

ORA-00904で実行すると: "M" "EVENT_DATE":無効な識別子 00904. 00000 - "%sの:無効な識別子"。。 *原因:
*処置:行番号:21列:6 "

SELECT i.originfacilitycode, 
     i.zip5, 
     TRUNC(i.receivedate,'HH24'), 
     TRUNC(m.event_date,'HH24'), 
     COUNT(i.tmi_uid) 
FROM ops_owner.track_mail_item i 
inner join (SELECT TRUNC(event_date,'HH24'), 
    tmi_uid 
FROM [email protected]_track 
WHERE event_id ='158' 
    AND event_date BETWEEN to_date('04/01/2017 12:00:01 AM', 'MM/DD/YYYY HH12:MI:SS AM') AND to_date('04/30/2017 11:59:59 PM', 'MM/DD/YYYY HH12:MI:SS PM') 
    ) m 
    ON i.tmi_uid  = m.tmi_uid 
    WHERE I.PRODUCT_ID IN (81, 82, 83, 36) 
    AND I.RECEIVEDATE BETWEEN to_date('04/01/2017 00:00:01', 'MM/DD/YYYY HH24:MI:SS') AND to_date('04/30/2017 23:59:59', 'MM/DD/YYYY HH24:MI:SS') 
    AND i.lasteventcountry = 'US' 
    AND i.zip3 NOT  IN ('006', '007', '008', '009', '090', '091', '092', '093', '094', '095', '096', '097', '098', '340', '962', '963', '964', '965', '966', '967', '968', '969', '995', '996', '997', '998', '999') 
GROUP BY  i.originfacilitycode, 
     i.zip5, 
     TRUNC(i.receivedate,'HH24'), 
     TRUNC(m.event_date,'HH24'); 

本当にありがとうございます。

+0

サブクエリは日付フィールドを返しませんでした。trunc ...をevent_dateまたは別のエイリアスとして選択し、メインクエリを変更する必要があります。m。 maSTAShuFu

+0

ありがとうございます。できます。 –

答えて

1

これはmのためのあなたのサブクエリです:

(SELECT TRUNC(event_date,'HH24'), tmi_uid 
    FROM [email protected]_track 
WHERE event_id ='158' AND 
     event_date BETWEEN to_date('04/01/2017 12:00:01 AM', 'MM/DD/YYYY HH12:MI:SS AM') AND to_date('04/30/2017 11:59:59 PM', 'MM/DD/YYYY HH12:MI:SS PM') 
) m 

それは最初の列に名前を付けていないので、あなたは、外部クエリでそれを参照することはできません。

(SELECT TRUNC(event_date,'HH24') as event_date, tmi_uid 
FROM [email protected]_track 
WHERE event_id ='158' AND 
     event_date >= date '2017-04-01' AND 
     event_date < date '2017-05-01' 
) m 
関連する問題