Как мне присоединиться к первой строке подзапроса?

У меня есть таблица счетов и дочерняя таблица связанных данных, связанных ключом. В частности, для каждого счета меня интересует только первая связанная строка из дочерней таблицы. Учитывая, что мне нужна одна связанная строка для каждого ключа счета-фактуры - как мне это сделать?

Select i.[Invoice Number],
       c.[Carrier Name]
From Invoice i
    Left Join Carriers c on i.[InvoiceKey] = c.[InvoiceKey]
Where -- what?

Я предполагаю, семантически говоря, что я ищу что-то похожее на концепцию Top 1 c.CarrierName Group by InvoiceKey (или какова была бы концепция этого, если бы это было возможно в T-SQL.)

I ' Я думал о левом соединении подзапроса, но это кажется не очень эффективным. Есть ли у кого-нибудь уловки T-SQL для эффективного достижения этой цели?

Edit : Извините, ребята, я забыл упомянуть, что это SQL Server 2000, так что пока я собираюсь проголосовать за текущий SQL Server 2005 / 2008 ответов, которые будут работать, я не могу их принять, боюсь.

23
задан BenAlabaster 14 January 2011 в 15:59
поделиться