SQL查询语句的优化

ymli 2003-03-21 10:51:05
三个表:原料表、生产表、生产明细表
查询当班成品率:
当班成品率=当班合格数/当班投入原料数

/*当班合格数'查询语句:*/
SELECT SUM(生产明细表.合格数)
FROM 生产表,生产明细表
WHERE 生产表.生产组号=生产明细表.生产组号 AND
生产表.生产组号 IN (生产表.生产日期=XX,
生产表.生产班组=YY,
生产表.生产班次=ZZ)

/*'当班投入原料数'查询语句:*/
SELECT SUM(生产明细表.投入原料数)
FROM 原料表,生产表,生产明细表
WHERE 生产表.生产组号=原料表.生产组号 AND
生产表.生产组号=生产明细表.生产组号 AND
生产表.生产组号 IN (生产表.生产日期=XX,
生产表.生产班组=YY,
生产表.生产班次=ZZ)

问题是,能否用一个语句求出当班成品率?
(当班成品率=当班合格数/当班投入原料数)
因为两句的子查询(生产表.生产组号 IN (...))都相同,用一个语句是否可以提高查询效率?

...全文
33 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HawaiiLeo 2003-03-21
  • 打赏
  • 举报
回复
/*'当班投入原料数'查询语句:*/
SELECT SUM(生产明细表.投入原料数)
FROM 原料表,生产表,生产明细表
WHERE 生产表.生产组号=原料表.生产组号 AND
生产表.生产组号=生产明细表.生产组号 AND
生产表.生产组号 IN (生产表.生产日期=XX,
生产表.生产班组=YY,
生产表.生产班次=ZZ)
“原料表”在WHERE子句中好象没起什么限制啊,这样的话我觉得
SELECT SUM(生产明细表.投入原料数)/SUM(生产明细表.合格数) as 当班成品率
FROM 原料表,生产表,生产明细表
WHERE 生产表.生产组号=生产明细表.生产组号 AND
生产表.生产组号 IN (生产表.生产日期=XX,
生产表.生产班组=YY,
生产表.生产班次=ZZ)
pengdali 2003-03-21
  • 打赏
  • 举报
回复
SELECT SUM(生产明细表.投入原料数)/SUM(生产明细表.合格数) as 当班成品率
FROM 原料表,生产表,生产明细表
WHERE 生产表.生产组号=原料表.生产组号 AND
生产表.生产组号=生产明细表.生产组号 AND
生产表.生产组号 IN (生产表.生产日期=XX,
生产表.生产班组=YY,
生产表.生产班次=ZZ)
愉快的登山者 2003-03-21
  • 打赏
  • 举报
回复
SELECT SUM(生产明细表.合格数)/ SUM(生产明细表.投入原料数)当班成品率
FROM 生产表,生产明细表
WHERE 生产表.生产组号=生产明细表.生产组号 AND
生产表.生产组号 IN (生产表.生产日期=XX,
生产表.生产班组=YY,
生产表.生产班次=ZZ)
愉快的登山者 2003-03-21
  • 打赏
  • 举报
回复
SELECT SUM(生产明细表.合格数)/ SUM(生产明细表.投入原料数)当班成品率
FROM 原料表,生产表,生产明细表
WHERE 生产表.生产组号=原料表.生产组号 AND
生产表.生产组号=生产明细表.生产组号 AND
生产表.生产组号 IN (生产表.生产日期=XX,
生产表.生产班组=YY,
生产表.生产班次=ZZ)
benxie 2003-03-21
  • 打赏
  • 举报
回复
gz

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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