2013-11-28 28 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

相關問題