【发布时间】:2015-07-08 21:35:03
【问题描述】:
我正在尝试执行此查询的 HP ALM:
SELECT ONE.ID, ONE.Num_QC_EDF, ONE.Statut, TWO.Proprietaire, ONE.ChangeDate
FROM
(SELECT B.BG_BUG_ID as ID, B.BG_USER_15 as Num_QC_EDF, AP.AP_NEW_VALUE as Statut, BG_RESPONSIBLE as Proprietaire, AL.AU_TIME as ChangeDate
FROM BUG B
INNER JOIN AUDIT_LOG AL
ON AL.AU_ENTITY_ID = B.BG_BUG_ID
INNER JOIN AUDIT_PROPERTIES AP
ON AL.AU_ACTION_ID = AP.AP_ACTION_ID
AND AL.AU_ENTITY_TYPE = 'BUG'
AND AL.AU_ACTION_ID= AP.AP_ACTION_ID
AND AP_FIELD_NAME= 'BG_STATUS')ONE,
(SELECT B.BG_BUG_ID as ID,B.BG_USER_15 as Num_QC_EDF, AP.AP_NEW_VALUE as Proprietaire , BG_STATUS as Statut , AL.AU_TIME as ChangeDate
FROM BUG B
INNER JOIN AUDIT_LOG AL
ON AL.AU_ENTITY_ID = B.BG_BUG_ID
INNER JOIN AUDIT_PROPERTIES AP
ON AL.AU_ACTION_ID = AP.AP_ACTION_ID
AND AL.AU_ENTITY_TYPE = 'BUG'
AND AL.AU_ACTION_ID= AP.AP_ACTION_ID
AND AP.AP_FIELD_NAME = 'BG_RESPONSIBLE'
AND B.BG_STATUS = 'TU leger OK')TWO,
BUG B
WHERE
ONE.ID= TWO.ID AND ONE.Num_QC_EDF= TWO.Num_QC_EDF AND ONE.STATUT= TWO.STATUT and ONE.Proprietaire= TWO.Proprietaire and TWO.ChangeDate <= ONE.ChangeDate
Order by BG_BUG_ID, Num_QC_EDF, Proprietaire, ChangeDate
我想将位于第二个子查询中的 ChangeDate 与第一个子查询中的一个进行比较,该子查询必须是
我在寻求帮助。
【问题讨论】:
-
您能否将您的表结构、一些示例数据和预期结果添加到问题中作为编辑?您似乎有一个从
BUG B到ONE和TWO之间连接结果的笛卡尔连接,这可能对您没有帮助,并且可能导致您的重复。根据要求,这可能可以通过分析解决,但目前很难说。 -
你可以参考这个页面:qtp-automate.blogspot.com/2010/04/… 在这里你可以找到所有关于表结构和它们之间的关系。
-
@Alex Poole 你可以参考这个页面:qtp-automate.blogspot.com/2010/04/…在那里你可以找到你在问什么
-
我同意@AlexPoole 的观点,底部第4 行的
BUG B(以及它上面一行的逗号)正在添加整个BUG 表,而您不会在任何地方加入它。我希望您的结果包括您的一列和两列中的数据,这些数据与 BUG 表中的记录数重复。然而,没有样本数据很难说。 @user3491503,我建议使用 sqlfiddle.com 构建一个示例集来解释您的问题,这将使用户更容易帮助您。
标签: sql oracle date-arithmetic