日期:2014-05-17  浏览次数:20501 次

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,这个结果是不一样的