开发者社区> 问答> 正文

在Access子报表中使用top子句

我正在Access 2003中制作一个报告,其中包含相关记录的子报告。在子报表中,我只想要前两个记录。当我在子报表的查询中添加“ TOP 2”时,似乎在筛选链接字段之前先选择了前两个记录。如何仅获取适用于相应链接字段的那些记录的前两个记录?谢谢。

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 16:58:55 821 0
1 条回答
写回答
取消 提交回答
  • 下面的示例查询应该为每个客户返回一对最新订单(而不是所有订单):

    select Order.ID, Order.Customer_ID, Order.PlacementDate from Order where Order.ID in ( select top 2 RecentOrder.ID from Order as RecentOrder where RecentOrder.Customer_ID = Order.Customer_ID order by RecentOrder.PlacementDate Desc ) 这样的查询可以在子报表中使用,以避免使用临时表。

    CAVEAT EMPTOR:我没有测试此示例查询,也不知道该查询是否适用于针对Jet数据库运行的报表(我们不使用Access来存储数据,并且避免使用瘟疫:-)。但是它应该针对SQL Server。

    我也不知道您的情况会如何。像往常一样,这取决于。:-)

    顺便说一句,谈到性能和黑客。我不会将使用临时表视为黑客。最糟糕的是,此技巧可以被认为是报表的一个比必要的界面复杂得多的界面。:-)使用这种临时表实际上可能是提高性能的一种好方法。因此,不要着急将其注销。:-)

    2019-11-18 16:59:05
    赞同 展开评论 打赏
问答分类:
BI
问答地址:
问答排行榜
最热
最新

相关电子书

更多
对 2000 多亿条数据做一次 group by 需要多久? 立即下载
对2000多亿条数据做一次Group By 需要多久 立即下载
低代码开发师(初级)实战教程 立即下载