gpt4 book ai didi

sql-server - 如何连接子查询的第一行?

转载 作者:行者123 更新时间:2023-12-02 00:19:14 25 4
gpt4 key购买 nike

我有一个发票表和一个按键关联的相关数据的子表。特别是,对于每张发票,我只对子表中的第一个相关行感兴趣。鉴于我想要每个发票键都有一个相关行 - 我该如何实现这一目标?

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。)

我考虑过在子查询上进行左连接,但这似乎不是很有效。有谁有任何 T-SQL 技巧可以有效地实现这一点吗?

编辑:抱歉,大家,我忘了提及这是 SQL Server 2000,所以虽然我要为当前可行的 SQL Server 2005/2008 响应投赞成票,但我可以'我恐怕不接受它们。

最佳答案

假设Carriers有一个名为idPRIMARY KEY:

SELECT  i.[Invoice Number],
c.[Carrier Name]
FROM Invoice i
JOIN Carriers c
ON c.id =
(
SELECT TOP 1 ID
FROM Carriers ci
WHERE ci.InvoiceKey = i.InvoiceKey
ORDER BY
id -- or whatever
)

关于sql-server - 如何连接子查询的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com