限制Crystal Reports从数据库中提取的记录数

时间:2015-09-29 13:09:55

标签: mysql database performance crystal-reports limit

因此,我在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>

这两个表已链接,它们将添加到我的报告中以显示如下内容:

日期范围:9月1日 - 9月5日

客户:John Doe 订单号:12348

客户:Sara Thomas 订单号:12346

客户:詹姆斯琼斯 订单号:12347

该列表将显示在日期范围内添加的所有新客户,但订单号仅显示最新订单。可能会发生的情况是,如果我在几个月前(例如3月5日 - 4月5日)运行报告的日期范围,它将显示该日期范围内的所有新客户,但它将从3月5日到现在提取所有订单号码,然后只显示最近的订单。我想要做的就是限制订单号码,这样才能拉出前20个左右。

1 个答案:

答案 0 :(得分:0)

与MySQL中的“SELECT TOP 20 ...”相同,在查询结尾处是LIMIT X,例如:

SELECT * FROM table LIMIT 20;

只获得前20行。如果您想订购(例如“ASC”),结果使用“ORDER BY”之后的“LIMIT”