2016-06-17 12 views
0

私は2つのテーブルを持っています(1つは 'salesimports'に関するデータ、次にショップに関するデータ)。oraclesql - 不足しているsalesimportデータを検索します

これは、例えばデータである:私は両方のテーブルからデータを取るために使用

shop city importid importtype importtime committime endtime 
S410 KURSK 1107597374 PSCN 2016-06-17 2016-06-17 2016-06-17 
S004 KIEV 1107595750 PSCN 2016-06-17 2016-06-17 2016-06-17 
S230 WARSAW 1107595594 PSCN 2016-06-17 2016-06-17 2016-06-17 
S115 LVIV 1107595507 PSCN 2016-06-17 2016-06-17 2016-06-17 
S220 PRAGUE 1107595458 PSCN 2016-06-17 2016-06-17 2016-06-17 
S179 MINSK 1107595328 PSCN 2016-06-17 2016-06-17 2016-06-17 
S247 HOMEL 1107595264 PSCN 2016-06-17 2016-06-17 2016-06-17 
S202 ROSTOV 1107595114 PSCN 2016-06-17 2016-06-17 2016-06-17 
S132 BERLIN 1107595112 PSCN 2016-06-17 2016-06-17 2016-06-17 

選択:

select f.shid shop, f.ctid city, i.limportref importid, i.simporttype importtype, 
     centrala_user.borlanddatetostr(i.itp) importtime, 
     centrala_user.borlanddatetostr(i.gtp) committtime, 
     centrala_user.borlanddatetostr(i.edp) endtime 
from oracla.imports i 
join oracla.firm f on i.shid = f.shid 
where f.byact = 0 
and f.bytype = 0 
and i.simporttype not in ('PSXN') 
order by i.itp desc; 

私の計画は私のお店についての情報を与えること、選択を取得することです店頭の「salesdata」全体がsalesimportsテーブルにありません。

私は 'and not in'と 'and not exist'を使っていくつかの解決策を試しましたが、私が望む結果が得られませんでした。

アイデア?

答えて

1

あなたはあなたが試したことを見せていませんでした。あなたはこのような何かしてみてくださいでした:

明確ではありませんので
select f.*, 
     (select max(centrala_user.borlanddatetostr(i.itp)) from oracla.imports i where i.simporttype not in ('PSXN') and i.shid=f.shid) as last_import_date 
    from oracla.firm f 
where f.byact = 0 
    and f.bytype = 0 
    and f.shid not in (
     select distinct i.shid 
     from oracla.imports i 
     where i.simporttype not in ('PSXN') 
     and centrala_user.borlanddatetostr(i.itp) > trunc(add_months(sysdate,-1)) 
    ) 

、最後の日々が何を意味するのか、私が使用している一週間(TRUNC(SYSDATE -7))

+0

はありがとうを、これは私はほとんど何を望むかです。 悲しいことですが、私は似たような方法を使っていましたが、f.shidをfの検索ではなく、fの代わりに検索しました。多分疲れていて、コーヒーが出ていたのかもしれません。 最後のimportdateを表示する方法を見つけなければならないということです。 – headder

+0

これは、単一のインポートがないショップのリストです。 しかし、最後の '月間'に輸入品がない店舗を見て、最後にメインサーバーにインポートした日時を表示する方法を知りました。 – headder

+0

@headder前月の月が1ヶ月前の場合は、add_months(sysdate、-1)を使用できます。最後の日付はインライン選択を使用します。私はSQLを変更しました。 – Mottor

関連する問題