关于SQL查询最有执行效率的语句

soft021 2008-12-08 08:31:25
查询内容:
采购单表A(a_id,a_no,a_date,a_p_code,a_p_name,a_p_qty,a_u_code)
入库单B(b_id,b_a_id,b_qty,b_u_code)
出库单C(c_id,c_a_id,c_qty,c_u_code)

<考虑多次出入库情况>
要做采购跟催表:要求能按a_no(采购单号,入库单号,出库单号等查询)
我用了以下方法
select a_no,a_date,a_p_code,a_p_name,a_p_qty,a_u_code
from a
left join
(
select b_a_id,b_qty=sum(b_qty),b_u_code from b group by b_a_id,b_u_code
)p_in on b_a_id = a_id
left join
(
select c_a_id,c_qty=sum(c_qty),c_u_code from c group by c_a_id,c_u_code
)p_out on c_a_id = a_id


但是效率很低,因为每次执行语句时都会把所有出入库情况都汇总一次再来做连接动作。
请求提出效率更高些的方法为谢。
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluefangxiao 2008-12-10
  • 打赏
  • 举报
回复
表结构是否合理及索引的建立
hyde100 2008-12-08
  • 打赏
  • 举报
回复
连接字段确保有索引
昵称被占用了 2008-12-08
  • 打赏
  • 举报
回复
这应该提升到设计问题

应该增加月结表(或者月盘点表),存放每月底的存量,减少查询出入库单的范围

另外,注意相关连接字段是否有索引
水族杰纶 2008-12-08
  • 打赏
  • 举报
回复
建立索引沒有?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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