数据统计问题

ygc03288 2009-03-17 10:21:17
一个数据库中二个表:
客户订单表(客户,货物号,单价,币别,数量)
库存表(货物号,库存数量,库存金额)

客户端页面上显示客户订单明细如:客户,货物号,单价,币别,数量,库存总数量
我是这样实现建一个存储过程中
一个临时表#tb放客户订单表,
另一个临时表#tb1放库存表信息(库存表一个货物多条记录过group by 求货物库存总数量)
然后用
update #tb()
set #tb.数量=t1.数量
from #tb
inner join (select #tb1.货物号, #tb1.数量 from #tb1) t1
on #tb.货物号=t1.货物号

因二个表记录都好几万条记录,现在动行起来很慢.
各位大哥帮我看看,有没有其它方法或者数据库设计改善
...全文
74 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_jufei 2009-03-17
  • 打赏
  • 举报
回复
try

select * ,b.库存总数量
from 客户订单表 a
join (select 货物号,sum(库存数量) 库存总数量 from 库存表 group by 货物号) b
on a.货物号=b.货物号
htl258_Tony 2009-03-17
  • 打赏
  • 举报
回复
select * ,b.库存总数量
from 客户订单表 a
join (select 货物号,sum(库存数量) 库存总数量 from 库存表 group by 货物号) b
on a.货物号=b.货物号
ws_hgo 2009-03-17
  • 打赏
  • 举报
回复
select m.*,isnull((select sum(库存数量) from 库存表 n where n.货物号 = m.货物号),0) '[库存总数量]'
from 客户订单表 m
tao416 2009-03-17
  • 打赏
  • 举报
回复
这样也可以!牛啊,我今天又长见识了!
sdhdy 2009-03-17
  • 打赏
  • 举报
回复
select  a.*, 库存总数量=(select sum(库存数量)  from 库存表 b where b.货物号=a.货物号) from  客户订单表 a
chengqscjh 2009-03-17
  • 打赏
  • 举报
回复
1.对货物号建索引
2.采用执行计划进行优化.
dawugui 2009-03-17
  • 打赏
  • 举报
回复
select m.*,
[库存总数量] = isnull((select sum(库存数量) from 库存表 n where n.货物号 = m.货物号),0)
from 客户订单表 m
肥龙上天 2009-03-17
  • 打赏
  • 举报
回复


select *
,库存总数量 = (select sum(库存数量) from 库存表 where 货物号 = a.货物号)
from 客户订单表 a


--或者
select * ,b.库存总数量
from 客户订单表 a
join (select 货物号,sum(库存数量) from 库存表 group by 货物号) b
dawugui 2009-03-17
  • 打赏
  • 举报
回复
请给出表结构,测试数据,具体算法和结果,谢谢。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧