Sql 如何在查询中使用来自另一个查询的列?

Sql 如何在查询中使用来自另一个查询的列?,sql,oracle,Sql,Oracle,第一个查询包含分区为null的所有框,第二个查询包含文件夹。但是,我只希望具有DPERMCONTAINER属性的文件夹与第一次查询中的DID相同。我只想进行一个查询,生成所需的结果 SELECT DISTINCT TO_CHAR(S.DID) DID, TO_CHAR(S.DPERMCONTAINER) PERMCONTAINER, S.DBARCODE, S.DDOCTITLE,

第一个查询包含分区为null的所有框,第二个查询包含文件夹。但是,我只希望具有DPERMCONTAINER属性的文件夹与第一次查询中的DID相同。我只想进行一个查询,生成所需的结果

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';

您可以在语句中添加:

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');

如果您能提供一些示例数据和基于此的预期输出,这将非常有帮助。谢谢。我想要一个符合条件的框列表,并且只需要与这些框关联的文件夹。我得到了一个错误,值太多。这还会比较第二次查询中的S.DPERMCONTAINER与第一次查询中的S.DID吗?因为我只想要第一次查询中列出的框的文件夹输出。@Charles,这是一个输入错误,现在再试一次。是的,这就是我尝试过的,它给了我缺少表达式的错误,而不是生成文件夹列表。选择DISTINCT TO_CHARS.DID DID,TO_CHARS.DPERMCONTAINER PERMCONTAINER,S.DBARCODE,S.DDOCTITLE,S.XCOMMENTS,SRM.XCATEGORYID,S.XDIVISION,S.DMEDIATYPE FROM PRD64_URMSERVER.EXTITEMS LEFT加入PRD64_URMSERVER.EXTITEMSRM SRM SRM S S S S在S.DID=SRM.DID上,其中upper.DMEDIATYPE='FOLDER'和TO_CHARS.DPERMCONTAINER中选择DISTINCT TO_CHARS.DID,来自PRD64_URMSERVER.exts,其中S.XDIVISION为NULL,UPPERS.DMEDIATYPE='BOX';哎呀,我在不应该的地方留下了一个逗号。我试过了,它产生了一个文件夹列表。我把它限制在10行ROWNUM没有问题,到时候我会很感激你的批准。。而且,你在评论中发布的选择似乎是错误的!请注意,在IN中没有左连接,在我的解决方案中应该有belook,因此请验证您使用的是正确的查询@查尔斯