【问题标题】:Comparing two dates and avoiding duplication比较两个日期并避免重复
【发布时间】: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 BONETWO 之间连接结果的笛卡尔连接,这可能对您没有帮助,并且可能导致您的重复。根据要求,这可能可以通过分析解决,但目前很难说。
  • 你可以参考这个页面: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


【解决方案1】:

首先,您添加了BUG B,它不与其他两个子查询表ONETWO 连接。所以,你会得到很多重复。

在不知道您的表结构的情况下,不可能更改您的查询。

如果您不想更改查询但仍想获得唯一记录,您可以执行以下操作:

Select DISTINCT AA.* FROM (*YOUR ENTIRE QUERY*) AA; 

以上方案不推荐,需要将BUG B正确加入其他两张表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多