新手求助,如何实现多条件查询取数,谢谢!!!

qq_37045694 2017-04-17 10:17:55
如图,怎么实现多条件从其他表查询取数。谢谢!!!
...全文
495 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
满天飞雪No1 2017-04-20
  • 打赏
  • 举报
回复
with Cr_a as (select 1 客户号,'A' 等级,100 额度 union select 2 客户号,'A' 等级,100 额度 union select 3 客户号,'A' 等级,300 额度 ) , Cr_b as (select 2 客户号,'2015' 年审年度,'A' 等级,'2015100' 额度 union select 2 客户号,'2016' 年审年度,'A' 等级,'2016200' 额度 union select 3 客户号,'2017' 年审年度,'A' 等级,'2017300' 额度) select aa.客户号,case when bb.客户号 is null then aa.等级 else bb.等级 end 等级,case when bb.客户号 is null then aa.额度 else bb.额度 end 额度 from Cr_a aa left outer join (select b.* from (select ROW_NUMBER() over(PARTITION BY 客户号 order by 年审年度) sn,* from Cr_b b ) b where b.sn=1) bb on bb.客户号=aa.客户号
Dreamia 2017-04-20
  • 打赏
  • 举报
回复
关于条件2:如果a表的客户号在b表存在且count>1时,根据年审年度排序取最近第二次的登记和额度;这个能否解释一下?为什么是取第二次,而不是最近一次?
紫枫昵 2017-04-18
  • 打赏
  • 举报
回复
select a.等级,a.额度 from a left outer join b on a.客户号=b.客户号 where b.客户号 is null unin select t.等级,t.额度 from a inner join (select top 1 客户号,年审年度,等级,额度 from b left outer join (select top 1 客户号,年审年度,等级,额度 from b grop by 年审年度 hvaing(count(*)>1) ) a on a.客户号=b.客户号 and a.年审年度<>b.年审年度) tmp t on a.客户号=t.客户号 unin select b.等级,b.额度 from a inner join b on a.客户号=b.客户号 group by b.客户号 having(count(*)=1)
sanGuo_uu 2017-04-17
  • 打赏
  • 举报
回复
感觉就算能实现,我也不想实现这样子的查询。 可以改需求最好
二月十六 版主 2017-04-17
  • 打赏
  • 举报
回复
结帖率有点低啊

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧