select a.学号, a.姓名, a.语文, b.语文, (select count(学号) from a where 语文 > a.语文)+1 as 名次 from a right jion ...
按以上的语句,在ado+access+vb6+sp5中运行后发现,所有的名次等于1,也就是说(select count(学号) from a where 语文 > a.语文)+1 as 名次1 没有起作用,错在哪?如何改,谢谢!
按以上的语句,在ado+access+vb6+sp5中运行后发现,所有的名次等于1,也就是说(select count(学号) from a where 语文 > a.语文)+1 as 名次1 没有起作用,错在哪?如何改,谢谢!
解决方案 »
- 对符合条件的数据筛选并同时对筛选到的数据的同一字段进行赋值的SQL出错是何因?
- 新手求救——如何创建文本文件?
- 第二次求助:怎样将long型的高、低16位分别赋值给两个integer?
- 组件中如果包含ADO事务,再用MTS封装,有效吗?
- goodname008来取分3
- 请问如何 datareport得如此报表:
- listview控件的使用问题?急!!
- mdi窗体的难题
- 我安装的visual studio 6.0中为什么只有C++和其他的东东能正常用,而只有VB一运行就报内存为“READ”按确定就退出了:(
- 真正的VB高手哪去了????????
- 关于mschart控件的一个简单问题---急!!!
- 关于DTPicker的问题!
肯定沒有符合條件的那么出來就是0
0+1當然一直都是1
(select count(学号) from a t where 语文 > a.语文)+1 as 名次 --加了一个别名。
我的目的是对两个成绩表进行对比,
表a结构是: 学号 姓名 语文
表b结构是: 学号 姓名 语文想生成以下新表:学号 姓名 a.语文 名次1 b.语文 名次2
其中名次1是指该学生的语文成绩在表a中的名次,名次2是指该学生的语文成绩在表b中的名次.
环境:vb6+sp5+ado+access
(select count(学号) from a where 语文 > b.语文)+1 as 名次
from a right jion a as b ....
(select count(学号) from a where 语文 > b.语文)+1 as 名次
from a right jion b ....
from(
select 学号, 姓名, 语文,(select count(*)+1 as 名次1 from a where 语文 > t1.语文) from a as t1
) as m,
(select 学号,(select count(*)+1 as 名次2 from a where 语文 > t2.语文) from b as t2) as n
where m.学号=n.学号
DROP TABLE temp_2CREATE TABLE temp_1 (学号 TEXT,姓名 TEXT, 语文 SHORT, 名次1 COUNTER)
CREATE TABLE temp_2 (学号 TEXT,姓名 TEXT, 语文 SHORT, 名次2 COUNTER)INSERT INTO temp_1 SELECT * FROM a ORDER BY 语文 DESC
INSERT INTO temp_2 SELECT * FROM b ORDER BY 语文 DESCSELECT a.学号, a.姓名, a.语文, 名次1, b.语文, 名次2 FROM temp_1 AS a, temp_2 AS b WHERE a.学号 = b.学号 OPDER BY a.学号