Мой босс бросил этот код в мою сторону, и мне трудно понять, как работает последний оператор ON внутреннего соединения. Я не думаю, что он полностью это понимает (но он выполняет свою работу). На самом деле просто интересно узнать больше о том, как работает SQL. Спасибо огромное!>, >,, = Операторы для условий внутренней регистрации
Вот заявление о
and (A.Submitted_Date > X.Submitted_Date)))
А вот в запросе
SELECT AA.ID, AA.Submitted_Date as Date_Status
FROM Report as AA
where AA.Submitted_Date in
--START
(
SELECT X.Submitted_Date
FROM Report as A
inner join
--Start Find All Dates Submitted
(
SELECT [ID],[Submitted_Date]
FROM Report
where not(Submitted_Date is null and Cleared_Date is null)
group by ID, Submitted_Date) as X
--End Find all Dates Submittd
--below is the conditions of the join
ON A.ID = X.ID
and A.ID= AA.ID
--THIS IS THE CONDITION I AM CONFUSED ABOUT!!!!
and (A.Submitted_Date > X.Submitted_Date)))
group by X.Submitted_Date)
and not AA.Submitted_Date is null
group by AA.ID, AA.Submitted_Date
Вот пример дат из таблицы А
2012-11-27 00:00:00.000
2012-11-27 00:00:00.000
2012-11-27 00:00:00.000
2012-12-10 00:00:00.000
2012-11-27 00:00:00.000
2012-11-27 00:00:00.000
2012-11-29 00:00:00.000
2012-12-05 00:00:00.000
2012-12-12 00:00:00.000
Вот пример дат из таблицы X
2012-11-27 00:00:00.000
2012-11-29 00:00:00.000
2012-12-05 00:00:00.000
2012-12-10 00:00:00.000
2012-12-12 00:00:00.000
Вот результат до последнего условия
2012-11-27 00:00:00.000
2012-11-29 00:00:00.000
2012-12-05 00:00:00.000
2012-12-10 00:00:00.000
2012-12-12 00:00:00.000
Вот результат с A.Sub> X.Sub
2012-11-27 00:00:00.000
2012-11-29 00:00:00.000
2012-12-05 00:00:00.000
2012-12-10 00:00:00.000
Я смущен о том, почему эти даты не отображаются. Что сравнивается между A и X? Не будут ли значения в A неизменными как X всегда, поэтому не приводят к окончательным данным? Спасибо за помощь!
ИМХО было бы яснее, если это условие было в предложении WHERE. Однако я не уверен, что план выполнения будет таким же. –
Думаю, нам нужно больше узнать о вашей таблице отчетов, чтобы полностью ответить на этот вопрос. Можете ли вы обновить свой вопрос, поэтому в образцах данных из X и A также есть Report.ID. У меня есть представление о том, что происходит, но я не могу сказать, не видя идентификаторы, поскольку они являются частью условия соединения. – Fodagus
Результирующие данные относятся к одному идентификатору. Поэтому подумайте об этом наборе результатов как о том, где инструкция внизу, где id = '111'; Спасибо, что пытались помочь! –