首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

5张表的SQL语句改如何写

2013-01-26 
5张表的SQL语句改怎么写 ?需要的查询结果为查询统计单号的数量和金额单号时间数量(和)金额(和)A01A02sum(C

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

热点排行