2013-11-28 27 views
-3

我有2个表,其中一个包含文档详细信息如下:如何从2个表中选择金额前4位的记录

表1:包含客户和总文件数量。

DocEntry CustID CustName City  DocAmount 
1   GF002 Raffy N London  120.00 
2   GF025 Jhon  Liverpool 50.00 
3   GF120 Keng  London  125.25 
4   GF055 Tung L. London  30.00 
5   GF020 Lee H. Manchester 60.00 

表2:包含每个文档的项目和项目价格。

DocEntry LineNum ItemID ItemName ItemPrice Qty LineAmount 
1   0  I0001 Mouse   6.00  5 30.00 
1   1  I0002 Key Broad  6.00  5 30.00 
1   2  I0200 Monitor  60.00  1 60.00 
2   0  I0501 Ext.HDD1  50.00  1 50.00 
3   0  I0665 Printer  125.00  1 125.00 
4   0  I0002 Key Broad  6.00  4 24.00 
4   1  I0001 Mouse   6.00  1  6.00 
5   0  I0050 ODD   12.00  1 12.00 
5   1  I0001 Mouse   6.00  8 48.00 

我想请从表1具有最高DocAmount并选出前3必须从表2

显示线路详细

文件前3名的结果应该是:

Row DocEntry CustID CustName DocAmount ItemID ItemName ItemPrice Qty LineAmount 
1 3   GF120 Keng  125.25  I0665 Printer  125.00  1 125.00 
2 1   GF002 Raffy N 120.00  I0001 Mouse   6.00  5 30.00 
3 1   GF002 Raffy N 120.00  I0002 Key Broad  6.00  5 30.00 
4 1   GF002 Raffy N 120.00  I0200 Monitor  60.00  1 60.00 
5 5   GF020 Lee H. 60.00  I0050 ODD   12.00  1 12.00 
5 5   GF020 Lee H. 60.00  I0001 Mouse   6.00  8 48.00 
+2

你正在使用什么样的RDBMS? – neutrino

+0

嗨中微子 我使用SQL Server 2008 R2 – user3044834

+0

和有什么问题? – VladL

回答

0
select Table2.DocEntry, CustID, CustName, DocAmount, ItemID, ItemName, 
ItemPrice, Qty, LineAmount 
from (select top 3 * from Table1 order by DocAmount desc) TopDocs 
    join Table2 on TopDocs.DocEntry=Table2.DocEntry 
order by DocAmount desc 

SQL Fiddle here

相关问题