我有一个巨大的视野——这个视野收集了玩家的信息。在特定部分,视图为玩家分配代理,这些玩家是从表“S”中选择的,并使用 case 语句进行分配。我想根据表 T 中名为 total_deposit 的聚合值分配特定代理。所以基本上我想说当表 S 中的用户在以下条件内(来自表 T)具有 max(total_deposit) 时,将代理名称设为 Andy我试过的代码:
CASE
WHEN s.Username = gs.username THEN gs.agent
when exists (select t.username from temptest t
where t.username = s.username
group by t.username
having max(t.total_deposit) >= 5000 or
( max(t.total_deposit) >= 1000 AND max(t.total_deposit) < 5000 )or
( max(t.total_deposit) >= 500 AND max(t.total_deposit) < 1000) or
( max(t.total_deposit) >= 250 AND max(t.total_deposit) < 500 )
) and s.Country in('Austria', 'Luxemburg', 'Switzerland', 'Lichtenstein')
then 'Andy'
else 'Joy'
它没有用,因为如果存在需要跟随一个表达式..我该怎么做?谢谢
如果我理解正确,您只需计算 max(total_deposit) 并将其加入主表,它可以通过使用 CTE 或如果您愿意,可以使用子查询来完成,如下所示:
或(相同)
您是否尝试过(从 temptest t 中选择 1,其中 t.username = s.username .....
而不是 t.username?