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

2010另一道java笔试题(数据库)
有4张表,分别是

bill(单据表,)
ID 主键
FName
fmizDate业务日期
fmarteryId 物类关系表ID
fusrId 经办人关系ID
。。。。



maritery(物料表)
id(主键)
fname(物料名称)
fsorcID物料分类关系表ID
.......

sorcy(物料分类表)
id(主键)
fname(分类名称)
amcount(价格)
。。。。

User(经办人表)
ID(主键)
username(经办人名称)
。。。。。。。


写一sql实现对每一物料,每一经办人,在XXX到XXX日期内的价格合计,因为每张表的数据都有很多,要求效率要高,还要写出索引(好像是这么说的啊,我也记的不太清了,反正就是跟索引有关系)请高人指教

物料 经办人 从xxxx-xx-xx到 xxxx-xx-xx 价格
物料1 1 XXX 200
物料2 2 230
特料1 1 。。。 200
物料2 2 .... 300 
 




------解决方案--------------------
SQL code

select m.id,u.id,sum(s.amcount)
from bill b, maritery m, sorcy s, user u
where b.fusrid = u.id
and   b.fmarteryid = m.id
and   m.fsorcid = s.id
and   b.fmizdate between date1 and date2
group by m.id, u.id