2016-03-22 9 views
1

最初のクエリには、除算がNULLのすべてのボックスが含まれ、2番目のクエリにはフォルダが含まれます。しかし、DPERMCONTAINER属性を持つフォルダだけがDIDと同じになります。私は望む結果を生むクエリーを1つだけ作成したいと思います。クエリで別のクエリの列を使用するにはどうすればよいですか?

SELECT DISTINCT TO_CHAR(S.DID) DID, 
       TO_CHAR(S.DPERMCONTAINER) PERMCONTAINER, 
       S.DBARCODE, 
       S.DDOCTITLE, 
       S.XCOMMENTS, 
       SRM.XCATEGORYID, 
       S.XDIVISION, 
       S.DMEDIATYPE 
FROM PRD64_URMSERVER.EXTITEMS S 
LEFT JOIN PRD64_URMSERVER.EXTITEMSRM SRM ON S.DID = SRM.DID 
WHERE S.XDIVISION IS NULL 
    AND UPPER(S.DMEDIATYPE) = 'BOX'; 

SELECT DISTINCT TO_CHAR(S.DID) DID, 
       TO_CHAR(S.DPERMCONTAINER) PERMCONTAINER, 
       S.DBARCODE, 
       S.DDOCTITLE, 
       S.XCOMMENTS, 
       SRM.XCATEGORYID, 
       S.XDIVISION, 
       S.DMEDIATYPE 
FROM PRD64_URMSERVER.EXTITEMS S 
LEFT JOIN PRD64_URMSERVER.EXTITEMSRM SRM ON S.DID = SRM.DID 
WHERE UPPER(S.DMEDIATYPE) = 'FOLDER'; 
+0

あなたには、いくつかのサンプルデータとそれに基づいて予想される出力は、それは非常に参考になることができれば。ありがとう。 – Utsav

+0

基準に一致するボックスのリストと、それらのボックスに関連付けられたフォルダだけが必要です。 – Charles

答えて

1

あなたは()ステートメントをを追加することができます

SELECT DISTINCT TO_CHAR(S.DID) DID, TO_CHAR(S.DPERMCONTAINER) PERMCONTAINER, S.DBARCODE, 
S.DDOCTITLE, S.XCOMMENTS, SRM.XCATEGORYID, S.XDIVISION, S.DMEDIATYPE 
FROM PRD64_URMSERVER.EXTITEMS S 
LEFT JOIN PRD64_URMSERVER.EXTITEMSRM SRM ON S.DID = SRM.DID 
WHERE UPPER(S.DMEDIATYPE) ='FOLDER' 
    AND TO_CHAR(S.DPERMCONTAINER) in(SELECT DISTINCT TO_CHAR(S.DID) 
            FROM PRD64_URMSERVER.EXTITEMS S 
            LEFT JOIN PRD64_URMSERVER.EXTITEMSRM SRM ON S.DID = SRM.DID 
            WHERE S.XDIVISION IS NULL AND UPPER(S.DMEDIATYPE) ='BOX'); 
+0

「値が大きすぎます」というエラーが表示されます。これは、2番目のクエリのS.DPERMCONTAINERと1番目のクエリのS.DIDを比較しますか?なぜなら、私は第1のクエリーからリストされたボックスのフォルダ出力のみが必要だからです。 – Charles

+0

@Charlesそれはタイプミスだったので、今すぐ試してみてください。そして、IN()が何をチェックしたのか – sagi

+0

これを試してみましたが、フォルダのリストを生成する代わりに、 "missing expression"というエラーが出ます。 'DID DISTINCT TO_CHAR(S.DID)を選択し、PRD64_URMSERVER.EXTITEMS S FROM TO_CHAR(S.DPERMCONTAINER)PERMCONTAINER、S.DBARCODE、S.DDOCTITLE、S.XCOMMENTS、SRM.XCATEGORYID、S.XDIVISION、S.DMEDIATYPE LEFT JOINはPRD64_URMSERVER.EXTITEMSRM SRM ON S.DID = SRM.DID WHERE PRD64_URMSERVER.EXTITEMSから上(S.DMEDIATYPE)= 'フォルダ' AND IN TO_CHAR(S.DPERMCONTAINER)(DISTINCT TO_CHARを選択(S.DID)、 S S.XDIVISIONがNULLでUPPER(S.DMEDIATYPE)= 'BOX'); ' – Charles

関連する問題