如何根据发票日期、发票号码和类别划分类别

问题描述 投票:0回答:1

我有一张如下所示的桌子

日期 帐单号 类别
2024年9月30日 1 VSS
2024年10月1日 2 RSS
2024年10月1日 3 VSS
2024年10月1日 3 RSS
2024年10月1日 4 RSS
2024年10月1日 4 RSS

我需要像下面这样的新类别

日期 帐单号 类别 新类别
2024年9月30日 1 VSS VSS
2024年10月1日 2 RSS RSS
2024年10月1日 3 VSS VSS
2024年10月1日 3 RSS VSS
2024年10月1日 4 RSS RSS
2024年10月1日 4 RSS RSS

注意:如果账单日期相同且账单编号重复且类别不同,则考虑 VSS。

我试过了

SELECT Date, BillNo, Category 
    , case when [Category]='VSS' then 'VSS' else 'RSS' end [New CATEGORY] 
FROM TBL
sql sql-server
1个回答
0
投票

如果结果行的条件引用表的其他行,您应该将原始查询与提供该条件的第二个查询结合起来。尝试这样的事情:

select
  TBL.Date, TBl.BillNo, TBL.Category,
  case when DIFF.NewCategory = 'VSS' then 'VSS' else TBL.Category end NewCategory
from TBL left outer join (
  select Date, BillNo, 'VSS' NewCategory
  from TBL
  group by Date, BillNo
  having count(distinct Category) > 1
) DIFF
on TBL.Date = DIFF.Date and TBL.BillNo = DIFF.BillNo
© www.soinside.com 2019 - 2024. All rights reserved.