我有一个查询,我需要使用单独的查询来填写各列:
每列都会看起来像这样
select PERFORMED_DATE from HHS_UMX_RESP_ACTIVITY where
REG_REQUEST_ID IN ('261507') AND ACTIVITY_RESULT_CODE = 'ASD'
AS "Security"
UNION
select PERFORMED_DATE from HHS_UMX_RESP_ACTIVITY where
REG_REQUEST_ID IN ('261507') AND ACTIVITY_RESULT_CODE = 'OTZ'
AS "Training"
UNION
select PERFORMED_DATE from HHS_UMX_RESP_ACTIVITY where
REG_REQUEST_ID IN ('261507') AND ACTIVITY_RESULT_CODE = 'ARA'
AS "Responsibility"
每列中唯一更改的内容是ACTIVITY_RESULT_CODE
。
我知道这种语法不起作用。有这样的语法吗?
我的查询会从每个不同列的特定表中获取不同的数据。 我的数据库输出截图,用于此查询:
SELECT * FROM HHS_UMX_RESP_ACTIVITY where REG_REQUEST_ID IN ('262050') AND ACTIVITY_RESULT_CODE = 'ASD' AND ROWNUM < 2
:
用户电子表格如下所示:
所以专栏&#34;责任&#34; /&#34;主管&#34;将各自对应于列ACTIVITY_RESULT_CODE
的唯一值(这些称为&#34; UPA请求状态&#34; - SBT,WSP,ASP,WRA,ARA,WTV,ATV等之一) :
谢谢!
答案 0 :(得分:1)
您说“对于每个不同的列”,但没有不同的列。 complexType
上只有不同的选择。
你现在拥有的语法,除了表别名外,还可以正常工作,完全没必要。您编写的查询也可以写成:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:mine="urn:devhelp"
targetNamespace="urn:devhelp"
elementFormDefault="qualified">
<xsd:element name="book">
<xsd:complexType>
<xsd:attribute name="title" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
答案 1 :(得分:1)
因此,您希望显示结果集同一行中不同行的信息。标准答案是连接,即使我们加入同一个表:
select
securityRow.REQ_REQUEST_ID,
securityRow.PERFORMED_DATE as securityDate,
trainingRow.PERFORMED_DATE as trainingDate,
responsibilityRow.PERFORMED_DATE as responsibilityDate
from HHS_UMX_RESP_ACTIVITY securityRow
join HHS_UMX_RESP_ACTIVITY trainingRow on trainingRow.REG_REQUEST_ID = securityRow.REG_REQUEST_ID
join HHS_UMX_RESP_ACTIVITY responsibilityRow on responsibilityRow.REQ_REQUEST_ID = securityRow.REG_REQUEST_ID
where securityRow.ACTIVITY_RESULT_CODE = 'ASD'
and trainingRow.ACTIVITY_RESULT_CODE = 'OTZ'
and responsibilityRow.ACTIVITY_RESULT_CODE = 'ARA'
这假设每个REQ_REQUEST_ID和ACTIVITY_RESULT_CODE只有一行匹配。否则,如果最多只有一个,则需要根据需要使用外连接。如果有多行,则必须将结果集限制为要使用的行。