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