2015-04-29 3 views
2

я работаю на 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, расположенный во втором подпространстве запроса к одному в первом суб запрос, который должен быть < =, также весь запрос не должен возвращать дублированные строки в результате этого (PS: отдельный не работает в вложенных запросах)

Я прошу помощи.

+1

Можете ли вы добавить свои структуры таблиц, некоторые примеры данных и ожидаемые результаты на вопрос в качестве редактирования? Кажется, у вас есть декартовое соединение от «BUG B» до результата соединения между «ONE» и «TWO», которые могут вам не помочь, и могут вызывать дубликаты. В зависимости от требования это может быть разрешено аналитикой, но на данный момент трудно сказать. –

+0

Youn может ссылаться на эту страницу: http://qtp-automate.blogspot.com/2010/04/how-to-retrieve-quality-center-bug.html, где вы можете найти все о структурах таблиц и отношениях между ними. – user3491503

+0

@Alex Poole Вы можете обратиться к этой странице: http://qtp-automate.blogspot.com/2010/04/how-to-retrieve-quality-center-bug.html, где вы можете найти то, что вы спрашиваете о – user3491503

ответ

0

Во-первых, вы добавили BUG B, который не объединяется с другими двумя таблицами подзапросов ONE и TWO. Итак, вы получаете много дубликатов.

Не зная своей структуры таблиц, вы не можете изменить свой запрос.

В случае, если вы не хотите, чтобы изменить ваш запрос и все еще хотите, чтобы получить уникальные записи, вы можете сделать следующее:

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

Выше раствора не рекомендуется, вам нужно зарегистрироваться BUG B правильно два других столы.

Смежные вопросы