多层级关联结构表计算SQL
最近在搞一个项目,一方面客户需求也比较复杂一些,二一个是个人SQL水平不高,导致SQL写的特别复杂,查询速度也不快,后来稍微优化了一下,做个记录。 表结构类似这种
因为是层级关联的如果计算实际“mlfb4”的数量,那么就应该是4x3x2x1=24。 用SQL查询的话
select a.mlfb,(a.qty*isnull(b.qty,1)*ISNULL(c.qty,1)*ISNULL(d.qty,1))qty from 表名 a left join 表名 b on a.parentid=b.id left join 表名 c on b.parentid=c.id left join 表名 d on c.parentid=d.id where a.id = 4
查询“mlfb4”总价
select a.mlfb,a.unitprice,((a.qty*a.unitprice)+isnull(b.qty*a.unitprice,0)+ISNULL(c.qty*a.unitprice,0)+ISNULL(d.qty*a.unitprice,0))totalprice from 表名 a left join 表名 b on a.parentid=b.id left join 表名 c on b.parentid=c.id left join 表名 d on c.parentid=d.id where id = 4