<pre><code class="lang-auto">SELECT Orders.OrderNumber, LineItems2.Quantity, LineItems2.Description
FROM Orders
CROSS APPLY
(
SELECT TOP 1 LineItems.Quantity, LineItems.Description
FROM LineItems
WHERE LineItems.OrderID = Orders.OrderID
) LineItems2
</code></pre>
<p>Pour les versions de SQL Server antérieures à 2005, vous devez utiliser un <code>INNER JOIN</code> au lieu d’un <code>CROSS APPLY</code> :</p>
<pre><code class="lang-auto">SELECT Orders.OrderNumber, LineItems.Quantity, LineItems.Description
FROM Orders
JOIN LineItems
ON LineItems.LineItemGUID =
(
SELECT TOP 1 LineItemGUID
FROM LineItems
WHERE OrderID = Orders.OrderID
)
</code></pre>
<p>Veuillez noter que <code>TOP 1</code> sans <code>ORDER BY</code> n’est pas déterministe : cette requête vous donnera un élément de ligne par commande, mais il n’est pas défini lequel ce sera.</p>
<p>Plusieurs invocations de la requête peuvent vous donner des éléments de ligne différents pour la même commande, même si les données sous-jacentes n’ont pas changé.</p>
<p>Si vous souhaitez un ordre déterministe, vous devez ajouter une clause <code>ORDER BY</code> à la requête la plus interne.</p>
<p><a href="http://sqlfiddle.com/#!18/44d008/6">Exemple sqlfiddle</a></p>