ssrs报告

nc1teljy  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(229)

我正在建立一个ssrs报告,数据如所附的图片所示。
我需要显示卡号分开像主要和次要的基础上标志到新的列连同生效日期。如果客户有多张卡,我想显示最新的卡信息。
如何修改sql脚本以获得所需的输出。
谢谢您。

lsmd5eda

lsmd5eda1#

可以使用条件聚合。我想这就是你想要的逻辑:

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;

相关问题