※ 引述《think12381 ()》之铭言:
: 请问一下各位 在写SQL语法考题和解答写得不一样 要怎么断定是否写对?
: 应该很难跟解答 完全一致吧 或著说
: "如果自己错 错在哪边?"
: 举例来说
: 工程师(编号, 姓名, 年龄, 性别 , 薪水) PK 编号
: 产品(代号 , 名目 , 年销售量 , 售价) PK 代号
: 设计(编号,代号) PK 编号 代号
: 针对销售量 20万只的产品 餐与设计此产品的工程师 不超过五人 列出此产品
: 名目和工程师平均薪水
: 我这边写法是
: select 产品.产品名目 , avg(工程师.薪水)
: from 产品
: where 产品.代号 in //重产品代号去找
: (
: select 设计.代号 //找到 设计当中有一个连接
: from 设计 , 工程师 //要串工程师的资讯
: where 设计.编号 = 工程师.编号 and // 把编号和工程是串起来
: 产品.代号 = 设计.代号 and // 把产品和设计 串起来
: group by 产品.产品名目 //框起来 产品名目 对其开头 select
: having 产品.年销售量 < 200000 and
: sum(工程师.编号) <=5
: ) ;
: 不知道这样写对不对?
我认为不对
对非训练有素的考生或有点实务经验的人来说 我觉得这有点难
你可能要装个SQL SERVER 或 MYSQL 之类的软件来练习 才会比较有感觉
下面是其中一种写法 给你参考
select A.名目,AVG(C.薪水)'平均薪水' from 产品 A
inner join 设计 B on A.代号=B.代号
inner join 工程师 C on B.编号=C.编号
where A.年销售量 >= 200000
and A.代号 in
(select 代号 from 设计
group by 代号
having count(*) <=5)
group by A.代号,A.名目