Sql server SQL数据库选择、排序和消除重复项,而不使用

Sql server SQL数据库选择、排序和消除重复项,而不使用,sql-server,sql-server-2014-express,Sql Server,Sql Server 2014 Express,在一个示例SQL数据库中,我在两个单独的表中获得了发票总额和供应商名称 作为一个总体方向,以下是我创建的当前代码: SELECT TOP 5 InvoiceTotal, VendorName FROM Invoices JOIN Vendors ON Invoices.VendorID = Vendors.VendorID ORDER BY InvoiceTotal DESC; 我要查找显示的前5名发票总额,但不重复任何供应商名称。例如,我的当前输出为: 137966.19 Malloy

在一个示例SQL数据库中,我在两个单独的表中获得了发票总额和供应商名称

作为一个总体方向,以下是我创建的当前代码:

SELECT TOP 5 InvoiceTotal, VendorName
FROM Invoices JOIN Vendors ON Invoices.VendorID = Vendors.VendorID
ORDER BY InvoiceTotal DESC;
我要查找显示的前5名发票总额,但不重复任何供应商名称。例如,我的当前输出为:

137966.19   Malloy Lithographing Inc
26881.40    Malloy Lithographing Inc
23517.58    Malloy Lithographing Inc
21842.00    Data Reproductions Corp
20551.18    Malloy Lithographing Inc
但是,目标输出类似于:

137966.19   Malloy Lithographing Inc
21842.00    Data Reproductions Corp
20076.01    Smith & Co
14590.00    Tim's Management LTD
13878.50    HelloWorld Corp
这是我能在管理工作室实现的吗?我尝试过实现DISTINCT,但似乎不起作用


非常感谢您的帮助。

下面的工作可以吗

SELECT TOP 5 MAX(InvoiceTotal) AS Total, VendorName
FROM Invoices JOIN Vendors ON Invoices.VendorID = Vendors.VendorID
GROUP BY VendorName
ORDER BY 1 DESC

下面的方法行吗

SELECT TOP 5 MAX(InvoiceTotal) AS Total, VendorName
FROM Invoices JOIN Vendors ON Invoices.VendorID = Vendors.VendorID
GROUP BY VendorName
ORDER BY 1 DESC

它还不能让我接受你的答案,但它确实有效。谢谢然而,我得到了Max()部分,但我不明白orderby1在做什么。为什么1?1只是指按第一列排序;可以使用这样的索引,也可以使用要排序的列的名称。在本例中,1是第一列的序号位置。所以无论哪一列是第一列,它都会按顺序排列。它不会让我接受你的答案,但它确实有效。谢谢然而,我得到了Max()部分,但我不明白orderby1在做什么。为什么1?1只是指按第一列排序;可以使用这样的索引,也可以使用要排序的列的名称。在本例中,1是第一列的序号位置。所以无论哪一列是第一列,它都会按这个顺序排列。