请教高手一个SQL问题,有这样一个表.表列是这个样子的: 客户号 系统类型 开立时间 证件类型 证件号码
这个表中每个客户号可能有1条或2条数据,系统类型只有A类或者B类,意思就是一个客户可能是A系统,或者B系统,也有可能同属于A,B系统.证件类型有多种.要求:每个客户号取一...
这个表中每个客户号可能有1条或2条数据,系统类型只有A类或者B类,意思就是一个客户可能是A系统,或者B系统,也有可能同属于A,B系统.证件类型有多种.
要求:每个客户号取一条数据, 但是如果证件类型,证件号码相同的话,就取系统类型为B的.
客户号 系统类型 开立时间 证件类型 证件号码
C A T D N
C B T 1 D N
C1 B T 3 D1 N1
C2 A T 2 D2 N2
得到的表应该是这个样子:(证件类型与号码一致的取B系统类型的那条数.)
C B T 1 D N
C1 B T 3 D1 N1
C2 A T 2 D2 N2
知道的大哥们告诉我一下啊.麻烦写写,多谢多谢. 展开
要求:每个客户号取一条数据, 但是如果证件类型,证件号码相同的话,就取系统类型为B的.
客户号 系统类型 开立时间 证件类型 证件号码
C A T D N
C B T 1 D N
C1 B T 3 D1 N1
C2 A T 2 D2 N2
得到的表应该是这个样子:(证件类型与号码一致的取B系统类型的那条数.)
C B T 1 D N
C1 B T 3 D1 N1
C2 A T 2 D2 N2
知道的大哥们告诉我一下啊.麻烦写写,多谢多谢. 展开
1个回答
展开全部
A系统和B系统同一个客户号的证件类型和证件号码一定相同吗?
如果相同的话,可以用下面的语句
select 客户号,系统类型,开立时间,证件类型,证件号码 from
(
select 客户号,系统类型,开立时间,证件类型,证件号码, row_number() over(partition by 客户号 order by
系统类型 desc) "row" from Table_Name
) where "row"=1
如果不相同的话,我对那个要求有点疑问。如果A,B系统的同一个客户号,他们的证件类型与号码不一致,那应该取哪个系统的数据没有说明。
如果相同的话,可以用下面的语句
select 客户号,系统类型,开立时间,证件类型,证件号码 from
(
select 客户号,系统类型,开立时间,证件类型,证件号码, row_number() over(partition by 客户号 order by
系统类型 desc) "row" from Table_Name
) where "row"=1
如果不相同的话,我对那个要求有点疑问。如果A,B系统的同一个客户号,他们的证件类型与号码不一致,那应该取哪个系统的数据没有说明。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询