我们有一个包含客户帐户的表。其中一个客户碰巧有多个帐户。
customer表:(格式:customer\u id name)
101史密斯
102威廉姆斯
103马丁
104千斤顶
科目表(格式:科目id、客户id、科目类型)
帐户\u id客户\u id帐户\u类型
201 101 a1号
202 101地下室
203 101 c1
301 102地下室
302 102 c1
401 103 a1号
402 103 c1
501 104地下室
如果一个客户有多个帐户,我们将根据此顺序选择帐户类型:a1、c1和b1
结果应该是:
客户id帐户类型
101 a1号
102 c1
103 a1号
104 b1层
我编写以下查询:选择c.customer\u id,case when account\u type in('a1','b1''c1'),然后选择a1 when account\u type in('b1''c1'),然后选择c1 else account\u type end from customer c join account a on a.customer\u id=c.customer\u id
如何设置条件:此查询中一个客户有多个帐户?
谢谢
1条答案
按热度按时间kx5bkwkv1#
简单的解决办法是
selectfrom(select,case accounttype when'a1',然后1 when'b1',然后3 when'c1',然后2 end as rank1 from testaccount)按客户ID排序,rank1