sql中的高手中的高手来看看这个SQL查询语句中的union错在哪儿了?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中的高手中的高手来看看这个SQL查询语句中的union错在哪儿了?相关的知识,希望对你有一定的参考价值。
已知:
学生表(学号,姓名,年级,专业,性别,年龄)主码:学号
课程表(课号,课名,教师,职称,课时,学分)主码:课号
必修课(课号,专业)主码:课号
成绩表(学号,课号,成绩) 主码:学号,课号
select distinct top 4 xs.学号,kc.课号,kc.课名,kc.教师,cj.成绩*0.7 as 期末分数
from 学生表 as xs,成绩表 as cj,课程表 as kc
where xs.学号=cj.学号 and cj.课号=kc.课号 and (cj.成绩*0.7>=42 or cj.成绩*0.7 between 56 and 63)and kc.教师 in('汪涵','赵中华','李玲','刘中','汪红')and kc.课名 like '_据%'
order by 期末分数 desc
union
select distinct 学生表.学号,课程表.课号,课名,教师,成绩*0.7 as 期末分数
from 成绩表 join 学生表 on 学生表.学号=成绩表.学号 join 课程表 on 成绩表.课号=课程表.课号
where 课程表.课号 in (select 课号 from 必修课 where 专业='计算机软件')
group by 学生表.学号,课程表.课号,课名,教师,成绩
having count(学生表.学号)<=4
但是要求按照成绩排序怎么办呢?
追答应该可以用子查询吧
比如:select * from (select A from A表 union select B from B表) as C order by a
哇哇,这么复杂啊,貌似有点抽象,偶刚学SQL表示看不懂
追答呵呵 没关系 只要有心学下去,就能成高手的
本回答被提问者采纳 参考技术C order by 期末分数 descunion
union前面不能有Order 参考技术D union all
....少了ALL追问
加了all后还是不能通过啊?
追答那你输出的列数和数据类型是否一致?
追问本质上是一致的,这个应该没问题
第5个回答 2011-12-06 去掉order by 子句delphi中adoquery的使用(delphi高手详细说一下)
在主窗口中用个adoconnection 链接数据库(sql2000) 其他窗口都用adoquery链接adoconnection
这样的话adoquery设置的时候active要改成ture,那么SQL中应该怎么写?比如我一个数据库有俩表(表一 表二) 一个界面有4个edit框要获取数据库中的值。第一个获取表一一共有多少量(count(*))
第二个获取表一中某列中的某个值,第三个获取表二中的某列中的某个值,第四个也获取表二中某列中的某个值(),这样的话需要几个adoquery,他们的sql语句应该怎么写? 谢了
一:
Query.sql.text:='select count(*) from table1';
Query.open; // open 就相当于Active:=true;
Edit1.Text:=Query.fields[0].AsString;
Query.close; //查询完后关闭数据集,相当于 Active:=false;
二:
Query.sql.text:='select 某个字段 from Table1 where xxxxx';
Query.open;
Edit2.Text:=Query.fields[0].AsString;
Query.close;
三:
Query.sql.text:='select 某个字段 from Table2 where xxxxx';
Query.open;
Edit3.Text:=Query.fields[0].AsString;
Query.close;
四:
Query.sql.text:='select 某个字段 from Table2 where xxxxx';
Query.open;
Edit4.Text:=Query.fields[0].AsString;
Query.close; 参考技术A 一共需要两个adoquery:
第一个读取总数:select count(*) as count1 from table1
第二个 select a.field1,b.field2,c.field3 from table1 as a,table2 as b,table3 as c where a.xx=b.xx and a.xx=c.xx (三个表之间一定有关联的,否则太多了)
以上是关于sql中的高手中的高手来看看这个SQL查询语句中的union错在哪儿了?的主要内容,如果未能解决你的问题,请参考以下文章
请教高手,使用IDEA做项目时mapper.xml中的sql语句问题提示:no data sources are configured ...
麻烦高手看下下面这个sql语句,为啥groupby了后,还能接个having 呢?