Только что нашел еще одно интересное использование неравного соединения в книге учебных комплектов MCTS 70-433 (разработка баз данных SQL Server 2008). Дословно ниже.
Комбинируя производные таблицы с неравными объединениями, вы можете вычислять различные совокупные агрегаты. Следующий запрос возвращает текущую совокупность заказов для каждого продавца (мое примечание - со ссылкой на вездесущий образец базы данных AdventureWorks):
select
SH3.SalesPersonID,
SH3.OrderDate,
SH3.DailyTotal,
SUM(SH4.DailyTotal) RunningTotal
from
(select SH1.SalesPersonID, SH1.OrderDate, SUM(SH1.TotalDue) DailyTotal
from Sales.SalesOrderHeader SH1
where SH1.SalesPersonID IS NOT NULL
group by SH1.SalesPersonID, SH1.OrderDate) SH3
join
(select SH1.SalesPersonID, SH1.OrderDate, SUM(SH1.TotalDue) DailyTotal
from Sales.SalesOrderHeader SH1
where SH1.SalesPersonID IS NOT NULL
group by SH1.SalesPersonID, SH1.OrderDate) SH4
on SH3.SalesPersonID = SH4.SalesPersonID AND SH3.OrderDate >= SH4.OrderDate
group by SH3.SalesPersonID, SH3.OrderDate, SH3.DailyTotal
order by SH3.SalesPersonID, SH3.OrderDate
Производные таблицы используются для объединения всех заказов для продавцов, у которых более одного заказа за один день. Объединение по SalesPersonID гарантирует, что вы накапливаете строки только для одного продавца. Неравное объединение позволяет агрегату учитывать только те строки для продавца, где дата заказа раньше, чем дата заказа, которая в данный момент рассматривается в наборе результатов.
В этом конкретном примере неравное объединение создает вид суммы «скользящего окна» для столбца суточного итога в SH4.