看看上面的语句是否解决了问题?
纠正一下,应该是
SELECT DISTINCT kzx4dm,(SELECT COUNT(jylsfsdm) FROM tablename WHERE kzx4dm=TA.kzx4dm) AS bys_count,(SELECT COUNT(jylsfsdm) FROM tablename WHERE kzx4dm=TA.kzx4dm AND jylsfsdm=10) AS yjs_count,yjs_count/bys_count AS jy_ratio
FROM tablename AS TA
Top
seeing........
Top
8错
Top
关注....
Top
To yonghengdizhen:
thank you.
正在研究此问题中.
yjs_count/bys_count AS jy_ratio 这句无法通过检查,不过可以把前面的东西拿倒这里来搞定,不使用字段名.
你的sql语句是对的.
Top
gz
Top
我决定:把200分中的180分,奖给贴出最精妙的SQL的高手!
Top
二维表 T(F1,F2,F3,F4,F5,F6,F7) 表示如下关系:
学生ID学生姓名课程ID课程名称 成绩教师ID教师姓名
S3王五K453 T4 赵老师
S1张三K1数学61 T1 张老师
S2李四K3英语88 T3 李老师
S1张三K477 T4 赵老师
S2李四K467 T5 周老师
S3王五K2语文90 T2 王老师
S3王五K1数学55 T1 张老师
S1张三K2语文81 T2 王老师
S4赵六K2语文59 T1 王老师
S1张三K3英语37 T3 李老师
S2李四K1数学81 T1 张老师
请以一句 T-SQL (Ms SQL Server) 或 Jet SQL (Ms Access) 在 原表 T 基础上作答
1.如果 T 表还有一字段 F0 数据类型为自动增量整型(唯一,不会重复),
而且 T 表中含有除 F0 字段外,请删除其它字段完全相同的重复多余的脏记录数据:
delete from twhere f0 in(select max(f0) from t group by f1,f2,f3,f4,f5,f6,f7 having count(f0)>1)
2.列印各科成绩最高和最低的记录: (就是各门课程的最高、最低分的学生和老师)
课程ID,课程名称,最高分,学生ID,学生姓名,教师ID,教师姓名,最低分,学生ID,学生姓名,教师ID,教师姓名
select tb.f4,tb.f3,tb1.f5,tb.f1,tb.f2,tb.f6,tb.f7,tb2.f5,tb2.f1,tb2.f2,tb2.f6,tb2.f7 from t tb where
f5=(select max(f5) from t where t.f4=tb.f4)
join select f2,f7 from t tb2 where
f5=(select min(f5) from t where t.f4=tb2.f4)
on tb.f4=tb2.f4
先完成一个,想想在做下一个.
3.按成绩从高到低顺序,列印所有学生四门(数学,语文,英语,)课程成绩: (就是每个学生的四门课程的成绩单)
学生ID,学生姓名,数学,语文,英语,,有效课程数,有效平均分
(注: 有效课程即在 T 表中有该学生的成绩记录,如不明白可不列印"有效课程数"和"有效平均分")
select tb1.f1,tb1.f2,count(tb1.f5) as scores,sum(tb1.f5) as scoresum, avg(tb1.f5) AS average,
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-30385-15.html
收了多少公关费