求高效率SQL 语句.

ykwang 2007-08-09 04:03:34
有三个表 分别是 A表,B表,C表
A表字段如下: id,日期,单号,审核
b表字段如下: 单号,数量,物料ID.
C表字段如下: id,编号,名称,规格,所属类别ID

关系如下: A表与B表是一对多关系. 两者用 单号 字段连接
B表与C表是链接关系. 通过 B表的 物料ID与C表中的ID字段对应,以取得物料名称与编码等.

现要求如下:
需要统计一,每个月的数量,要求A表已经审核,C表中的 所属类别ID在 7,10,12中.
普通SQL语句如下:
SELECT SUM(数量) AS 1月份,物料ID FROM A表 A,B表 B,C表 C WHERE A.单号=B.单号 AND B.物料ID=C.ID AND a.审核='1' and YEAR(日期)='2007' AND MONTH(日期)='1' AND 所属类别ID IN (7,10,12) GROUP BY 物料ID
这样相当于每月的数量只能通过12条语句计算出来,再合并,这样效率比较低,有没有更好的办法?


...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ykwang 2007-08-10
  • 打赏
  • 举报
回复
up
新鲜鱼排 2007-08-10
  • 打赏
  • 举报
回复
效率和执行语句的多少没有直接的关系。只要保证每个语句都是效率很高的,那么就没有太大的问题。
*****************************************************************************
SELECT SUM(数量) AS 1月份,物料ID FROM A表 A,B表 B,C表 C WHERE A.单号=B.单号 AND B.物料ID=C.ID AND a.审核='1' and YEAR(日期)='2007' AND MONTH(日期)='1' AND 所属类别ID IN (7,10,12) GROUP BY 物料ID
*****************************************************************************
数据表关联顺序,Year(日期)这样的写法需要优化,In的写法需要优化,因为In就相当于ID = 7 or ID = 10 or ID = 12

22,207

社区成员

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

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