sql - SQL-SSRS 报告
问题描述
我正在构建一个 SSRS 报告,数据如下图所示。
我需要根据标志将卡号分别显示为主要和次要卡号以及生效日期。如果客户有不止一张卡,我想显示最新的卡信息。
如何修改我的 sql 脚本以获得所需的输出。
解决方案
您可以使用条件聚合。我认为这是您想要的逻辑:
select cif_id, staff_id, package, segment,
max(case when seqnum = 1 and primary_card_flag = 'Y' then card_number end),
max(case when seqnum = 1 and primary_card_flag = 'N' then card_number end),
max(case when seqnum = 1 and primary_card_flag = 'Y' then valid_from_date end),
max(case when seqnum = 1 and primary_card_flag = 'N' then valid_from_date end)
from (select t.*,
row_number() over (partition by cif_id, staff_id, package, segment, primary_card_flag
order by valid_from_date desc
) as seqnum
from t
) t
group by cif_id, staff_id, package, segment order;
推荐阅读
- php - MySQL降序问题
- amazon-s3 - 从 S3 事件触发 ECS 任务
- mysql - SQL选择如果出现子字符串然后复制直到子字符串否则保持原始
- ruby-on-rails - 如何使用 Pundit 解决 NoMethodError
- java - 使用 Maven 时避免损坏的罐子(无效的 LOC 标头)
- python - 使用 Python Twisted Websocket 客户端建立到服务器的并发 Websocket 连接
- android - 如何使用 Retrofit Api 解析 Json 对象列表
- c# - 如何通过传递多个值来批量打印报表
- java - 如何使用折叠工具栏布局实现这种布局效果
- c# - 如何从 ASP.NET 核心导出 CSV 文件