一个sql汇总问题。(50分)

  • 主题发起人 gxtdlang
  • 开始时间
G

gxtdlang

Unregistered / Unconfirmed
GUEST, unregistred user!

主表1:jhdj(进货单据)有字段:djh (单据号) bmdm (部门代码)、bmmc (部门名称)、。。。
细表1:jhdjmx(进货单据明细)有字段:djh (单据号)、 sl(数量)、 dj(单价)、 。。。

其中: ****** sl*dj=jhe (进货额)********

主表2:jhthdj(进货单据)有字段:djh (单据号) bmdm (部门代码)、bmmc (部门名称)、。。。
细表2:jhthdjmx(进货退货单据明细)有字段:djh (单据号)、 sl(数量)、 dj(单价)、jhj
(进货价)、 。。。
其中: ********sl*dj=jhthe(进货退货额)******sl*(dj-jhj)=jhthml(进货退货毛利)*******

现把4个表联接起来,按部门汇总得出表格如下:如何做?
bmdm bmmc sum(jhe) sum(jhthe) sum(jhthml)
001 A 1
002 B 2
003 C 1
总计: 4

假如有5万条记录,在查询时,如何做到最快? 数据库为sqlserver2k,最好能贴出代码,各位谢谢了!
 
用视图和存储过程
 
用视图吧
速度很快的,写好后直接使用就可
 
同意楼上
 
能否具体点呢?能否贴出一些东东来?我菜!
 
select bmdm, bmmc, sum_jhe, sum_jhthe, sum_jthtml
from
(
select djh,sum(jhe) as sum_jhe, sum(jhthe) AS sum_jhthe, sum(jhthml) AS sum_jhthml
from
(select jhdjmx.djh,jhdjmx.sl*jhdjmx.dj AS jhe, jhthdjmx.sl*jhthdjmx.dj AS jhthe,
jhthdjmx.sl*(jhthdjmx.dj-jhthdjmx.jhj) AS jhthml
from jhdjmx, jhthdjmx
where jhdjmx.djh = jhthdjmx.djh
)
group by djh
) as a, jhdj as b
where a.djh=b.djh

不知行不行,可能不行?
 
顶部