5张表的SQL语句改怎么写 ?
需要的查询结果为
查询统计单号的数量和金额
单号 时间 数量(和) 金额(和)
A01 A02 sum(C.02)/sum(d.02) sum(c02)/sum(c03)
A表: B表
A01 A02 B01 B05
单号 时间 单号 单号1
C表: D表:
C01 C02 C03 C04 D01 D02 D03 D04
单号1 数量 金额 E01 单号1 数量 金额 E01
E表:
表关系
A.01=B.01
B.05=C.01
B.05=D.01
C.04=E.01
D.04=E.01
C表和D表是两张相同结构的表
现在我想根据字段 E03的值来查询
如果只有C表没有D表的话我是这么写的
Select a01,a02,sum(c02)as c02,sum(c03) as c03 from A left join B on a01=b01 left join C on b05=c01 left join E on c04=e01 where e03=”查询的值” group by a01,a02
多了一个D表后 该怎么写?
SQL查询
多表查询
------解决方案--------------------就直接写呗
left join D on B.05=D.01 and D.04=E.01
------解决方案--------------------Select a01,a02,sum(s1.c02) as c02,sum(s1.c03) as c03
From
(Select b01,c02, c03 from B left join C on b05=c01 left join E on c04=e01 where e03=”查询的值”
union all
Select b01,d02, d03 from B left join D on b05=d01 left join E on d04=e01 where e03=”查询的值” )S1 left join A on S1.b01=a01 where
你后续用S1来替代红字部分就可以了,也就是说再试没问题。不过你要搞清楚是A left join S1还是S1 left join A,这个结果是不一样的