100分求一个case sql语句的简化!
select CurrentBucket = CASE WHEN
CASE receive WHEN '0' THEN datediff(dd, PaymentDate, getdate())
WHEN '1' THEN datediff(dd, DueDate, getdate())
END < 30
AND
CASE receive WHEN '0' THEN datediff(dd, PaymentDate, getdate())
WHEN '1' THEN datediff(dd, DueDate, getdate())
END > 0
THEN amount
ELSE 0
END
from mytable
因为有两个条件,<30and>0,并且里面的判断条件也随一个字段不同而不同。
这个语句已经成功,而且是正确地。
但是因为有多个bucket类型需要统计,
我觉得语句过于复杂,不知道谁知道能否简化一下,尤其那个and号连接的内容