sql实现分组和判断,求教个思路

现有a,b,c三张表,a是交易表,有交易时间,账户等字段,b是产品表,有产品编号,序号,账户,产品收益模式等字段,c是产品起息信息表,有序号,产品编号,起息日,到期日,ab表是通过账户去关联,bc通过序号关联。

收益模式有01,02,03,''''四种情况,产品表中还有有效状态标识字段,同一个产品只有一笔有效信息,无效的可能有多笔。

账户下可以有多个产品,每个产品的收益模式可能相同也可能不同,起息日和到期日也可能相同或不同。

现在想实现,通过交易表的账户去查询账户下对应产品的收益模式。如果交易日不在产品的起息日和到期日之间,收益模式取‘‘无匹配产品’’,如果交易日落在起息日和到期日之间,取产品对应的收益模式,如果落在多个产品的起息日和到期日之间,那么收益模式取多个产品的收益模式,并用,分隔,但是需要去除重复的收益模式

一条SQL?那就难了。最好在一个事务内,用多条SQL来操作,这样看着逻辑清晰,还方便调节