You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Capacity字段值在SSRS中显示指定条数记录集的SQL实现

适用于SSRS仪表板的SQL脚本实现方案

要实现根据Master Item表的Capacity值限制显示对应条数交易记录的需求,可以使用**窗口函数ROW_NUMBER()**为每个物品的交易记录编号,再筛选出不超过Capacity数量的记录。以下是具体的SQL脚本:

WITH RankedTransactions AS (
    SELECT 
        mt.[Order number],
        mt.ItemId,
        mt.itemSerial,
        mt.Name,
        mt.Qty,
        mi.Capacity,
        -- 按订单号和序列号为每个物品的交易记录排序编号
        ROW_NUMBER() OVER (
            PARTITION BY mt.ItemId 
            ORDER BY mt.[Order number], mt.itemSerial
        ) AS RowNum
    FROM [Master Transaction] mt
    INNER JOIN [Master Item] mi 
        ON mt.ItemId = mi.ItemId
)
SELECT 
    [Order number],
    ItemId,
    itemSerial,
    Name,
    Qty
FROM RankedTransactions
WHERE RowNum <= Capacity;

脚本说明:

  1. CTE(RankedTransactions):

    • 将主交易表与主物品表通过ItemId关联,获取每个交易对应的Capacity值。
    • 使用ROW_NUMBER()窗口函数,按ItemId分组,并根据订单号和物品序列号排序,为每个物品的交易记录生成唯一行号。
  2. 筛选逻辑:

    • 从CTE中查询数据,仅保留行号小于等于Capacity的记录,实现按物品容量限制显示条数的需求。

注意事项:

  • 如果需要调整交易记录的排序规则(例如按交易时间倒序取最近的N条),只需修改ROW_NUMBER()中的ORDER BY子句即可。
  • 若表名包含空格,需用方括号[]包裹(如[Master Transaction]),避免SQL语法错误。

内容的提问来源于stack exchange,提问作者zeco jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:15:55