2015-09-29 112 views
0

因此,我在Crystal Reports中創建了一個報表,其中的一個部分是從表中提取訂單號,但只顯示客戶的最新訂單號。這個訂單表非常大,我擔心是否有人在大日期範圍內運行報表,當它不需要時,Crystal將從數據庫中提取大量數據。限制Crystal Reports從數據庫中提取的記錄數

有沒有辦法限制水晶會爲訂單號拉取的記錄數量?某種如何選擇頂級20 * SQL語句的作品。

好吧,繼承人有關我如何佈置所有東西的信息。 我有一個順序表是這樣的:

<table border> 
 
    <tr><td colspan=3>Table Name = Orders</td></tr> 
 
    <tr><td>Date</td><td>Order Number</td><td>Customer Number</td></tr> 
 
    <tr><td>2015-09-01</td><td>12345</td><td>1</td></tr> 
 
    <tr><td>2015-09-01</td><td>12346</td><td>2</td></tr> 
 
    <tr><td>2015-09-01</td><td>12347</td><td>3</td></tr> 
 
    <tr><td>2015-09-02</td><td>12348</td><td>1</td></tr> 
 
</table>

,我有一個客戶表是這樣的:

<table border> 
 
    <tr><td colspan=3>Table Name = Customers</td></tr> 
 
    <tr><td>Customer Number</td><td>First Name</td><td>Last Name</td></tr> 
 
    <tr><td>1</td><td>John</td><td>Doe</td></tr> 
 
    <tr><td>2</td><td>Sara</td><td>Thomas</td></tr> 
 
    <tr><td>3</td><td>James</td><td>Jones</td></tr> 
 
</table>

這兩個錶鏈接,並他們會被添加到我的報告中以顯示如下內容:

日期範圍:九月1日至9月5日

客戶:李四 訂單號:12348

客戶:薩拉·托馬斯 訂單號:12346

客戶:詹姆斯·瓊斯 訂單號: 12347

該列表將顯示在日期範圍內添加的所有新客戶,但訂單號僅顯示最近的訂單。如果我在幾個月前(例如3月5日 - 4月5日)運行報表日期範圍(如3月5日至4月5日),可能會發生的情況是,它會顯示該日期範圍內的所有新客戶,但它將從3月5日起拖至所有訂單號,然後只顯示最近的訂單。我想要做的只是限制訂單號,所以只有前20左右被拉。在MySQL

+2

請嘗試以下類型的查詢: - 選擇*從**(id或date desc) **限制20 –

+0

如果你有分區或你的ID是自動增量我建議添加一些條件例如當前日期之間的日期 - 間隔1天和現在() – user3600910

+0

對不起,我想我沒有做一個很好的工作措辭我的問題...我需要能夠限制水晶報表本身拉的記錄,我只是使用SQL語句作爲我想在水晶 – Kristen

回答

0

同爲 「SELECT TOP 20 ...」 是極限X1在查詢結束,例如:

SELECT * FROM table LIMIT 20; 

只拿到第20行。如果您想訂購(例如「ASC」),則使用「ORDER BY」後的「LIMIT」

相關問題