--测试数据
-----------------------------------------
1.--添加
--表1
CREATE TABLE [dbo].[MyUserInfo](
[myname] [nvarchar](20) not null,--姓名
[kemu] [nvarchar](20) not NULL,--语文 数学等。
[mynumber] [int] not NULL--学号
) ON [PRIMARY] --数据INSERT INTO [dbo].[MyUserInfo]([myname],[kemu],[mynumber]) VALUES('jack','语文' ,10001)
INSERT INTO [dbo].[MyUserInfo]([myname],[kemu],[mynumber]) VALUES('jack','数学' ,10001)INSERT INTO [dbo].[MyUserInfo]([myname],[kemu],[mynumber]) VALUES('Fans','语文' ,10002)
INSERT INTO [dbo].[MyUserInfo]([myname],[kemu],[mynumber]) VALUES('Fans','数学' ,10002)
--【当 [dbo].[MyUserInfo] 选择学号10001,则返回】select * from MyUserInfo where mynumber=10001
--jack 语文 10001
--jack 数学 10001--表2
CREATE TABLE [dbo].[MyAchievement](
[kemu] [nvarchar](20) not null,--语文 数学等。
[Fenshu] [int] not NULL,--语文 数学等。
[mydate] [datetime]
) ON [PRIMARY] insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('语文',80,'2012-8-1')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('语文',80,'2012-9-1')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('语文',80,'2012-8-8')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('数学',80,'2012-8-1')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('语文',80,'2012-10-1')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('数学',80,'2012-9-1')--select * from MyAchievement
--问题:从表一10001--得到 语文 和 数学, 语文和数学 在表2中时间最大的值。--希望得到的是时间最大的, 这个2条书面--语文 80 2012-10-01 00:00:00.000
--数学 80 2012-09-01 00:00:00.000
-----------------------------------------
1.--添加
--表1
CREATE TABLE [dbo].[MyUserInfo](
[myname] [nvarchar](20) not null,--姓名
[kemu] [nvarchar](20) not NULL,--语文 数学等。
[mynumber] [int] not NULL--学号
) ON [PRIMARY] --数据INSERT INTO [dbo].[MyUserInfo]([myname],[kemu],[mynumber]) VALUES('jack','语文' ,10001)
INSERT INTO [dbo].[MyUserInfo]([myname],[kemu],[mynumber]) VALUES('jack','数学' ,10001)INSERT INTO [dbo].[MyUserInfo]([myname],[kemu],[mynumber]) VALUES('Fans','语文' ,10002)
INSERT INTO [dbo].[MyUserInfo]([myname],[kemu],[mynumber]) VALUES('Fans','数学' ,10002)
--【当 [dbo].[MyUserInfo] 选择学号10001,则返回】select * from MyUserInfo where mynumber=10001
--jack 语文 10001
--jack 数学 10001--表2
CREATE TABLE [dbo].[MyAchievement](
[kemu] [nvarchar](20) not null,--语文 数学等。
[Fenshu] [int] not NULL,--语文 数学等。
[mydate] [datetime]
) ON [PRIMARY] insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('语文',80,'2012-8-1')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('语文',80,'2012-9-1')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('语文',80,'2012-8-8')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('数学',80,'2012-8-1')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('语文',80,'2012-10-1')
insert into [dbo].[MyAchievement]([kemu],[Fenshu],[mydate]) values ('数学',80,'2012-9-1')--select * from MyAchievement
--问题:从表一10001--得到 语文 和 数学, 语文和数学 在表2中时间最大的值。--希望得到的是时间最大的, 这个2条书面--语文 80 2012-10-01 00:00:00.000
--数学 80 2012-09-01 00:00:00.000
解决方案 »
- oracle使用order by和rownum效率很慢,有没有提升的办法?
- 关于Number的一些问题,希望各位高手帮忙看下
- 11g数据库,对于分区表来说,如何把某个、或某几个分区放入到keep池里?
- oracle查询建表失败
- 客户端sql plus 能够连上服务器,可是通过程序却报ORA-03121:NO INTERFACE DRIVER CONNECTED-FOUNCTION NOT PERFORMED.
- oracle存储过程中如何授权建临时表
- 创建表空间??
- 请问如何在ORACLE8中增加任务?
- 我是初学者,db2和oracle哪个有前途?
- Oracle Database11g怎么设置并使用外部的JDK1.8
- 请问Oracle 8i客户端如何静默卸载
- 根据子公司查顶级公司
--直接這樣就好了
select * from MyAchievement a where mydate=(select max(mydate) from [MyAchievement] b where a.[kemu]=b.[kemu]);
from (select a.kemu,b.fenshu,b.mydate,row_number()over(order by b.mydate desc) rn from MyUserInfo a,MyAchievement b
where a.kemu = b.kemu and a.mynumber = '10001') where rn = 1
谢谢2位 好像不行吧! 必须关联表1怎么没日期的比较啊MAX...简单说:用 10001 表1 对应 语文 数学 (2个类别)
再以---语文 数学 为条件 在集合中 求 日期最大的 (结果应该是2条数据)
请帮忙 谢谢!
kemu 这个条件 要10001 关联出
谢谢 帮忙。 我这个是测试数据啊~~
1:从表1 10001 可以的得到--- 语文 数学(关联....MyAchievement)2:再用 -- 语文 数学 关联表2 ---取他们日期最大的值。得到的结果:--语文 80 2012-10-01 00:00:00.000
--数学 80 2012-09-01 00:00:00.000不知道如何写....
写存储过程估计比较容易实现,PL\SQL 不知道怎么写。
--這樣取
select * from MyAchievement a
where exists(select 1 from MyUserInfo where mynumber=10001 and MyUserInfo.kemu=a.kemu)
and mydate=(select max(mydate) from [MyAchievement] b where a.[kemu]=b.[kemu]);
OK 你刚才说的 有个字段表 关联MyAchievement ,的确是有。(不好意思)
(MyAchievement 中这样的字段 mynumber 10001,10002)