Я буду использовать конкретный, но гипотетический пример.
Каждый Заказ обычно имеет только одну позицию:
Заказы:
OrderGUID   OrderNumber
=========   ============
{FFB2...}   STL-7442-1      
{3EC6...}   MPT-9931-8A
LineItems:
LineItemGUID   Order ID Quantity   Description
============   ======== ========   =================================
{098FBE3...}   1        7          prefabulated amulite
{1609B09...}   2        32         spurving bearing
Но иногда будет заказ с двумя позициями:
LineItemID   Order ID    Quantity   Description
==========   ========    ========   =================================
{A58A1...}   6,784,329   5          pentametric fan
{0E9BC...}   6,784,329   5          differential girdlespring 
Обычно при показе заказов пользователю:
SELECT Orders.OrderNumber, LineItems.Quantity, LineItems.Description
FROM Orders
    INNER JOIN LineItems 
    ON Orders.OrderID = LineItems.OrderID
Я хочу показать единственный элемент в заказе. Но при этом случайном порядке, содержащем два (или более) элемента, порядок будет выглядеть дублированным:
OrderNumber   Quantity   Description
===========   ========   ====================
STL-7442-1    7          prefabulated amulite
MPT-9931-8A   32         differential girdlespring
KSG-0619-81   5          panametric fan
KSG-0619-81   5          differential girdlespring
Я действительно хочу, чтобы SQL Server просто выбрал один, поскольку он будет достаточно хорошим:
OrderNumber   Quantity   Description
===========   ========   ====================
STL-7442-1    7          prefabulated amulite
MPT-9931-8A   32         differential girdlespring
KSG-0619-81   5          panametric fan
Если я получаю авантюризм, я могу показать пользователю, многоточие, чтобы указать, что там больше одного:
OrderNumber   Quantity   Description
===========   ========   ====================
STL-7442-1    7          prefabulated amulite
MPT-9931-8A   32         differential girdlespring
KSG-0619-81   5          panametric fan, ...
Итак, вопрос заключается в том, как либо
- исключить "повторяющиеся" строки
- присоединяется только к одной из строк, чтобы избежать дублирования.
Первая попытка
Моя первая наивная попытка состояла в том, чтобы присоединиться к позициям TOP 1:
SELECT Orders.OrderNumber, LineItems.Quantity, LineItems.Description
FROM Orders
    INNER JOIN (
       SELECT TOP 1 LineItems.Quantity, LineItems.Description
       FROM LineItems
       WHERE LineItems.OrderID = Orders.OrderID) LineItems2
    ON 1=1
Но это дает ошибку:
В столбце или префиксе "Заказы" нет совпадение с именем таблицы или псевдонимом используется в запросе.
Предположительно, потому что внутренний выбор не видит внешнюю таблицу.
