langhua9527 2012-01-11 21:52 采纳率: 0%
浏览 316
已采纳

一个简单的SQL查询用什么方法最好?

一张表
字段如下
1.姓名
2.考试时间 DATE
3.语文分数
4.数学分数
5.外语分数

例子

张三 2009-01-01 96 93 77
张三 2009-01-02 95 96 67
张三 2009-01-03 78 45 80
李四 2009-01-01 76 73 97
李四 2009-01-02 93 96 46
李四 2009-01-03 98 85 80

现在要求出来的格式

姓名 语文最高分数 出现时间 语文最低分数 出现时间 数学最高分数 出现时间 数学最低分数 出现时间 外语。。。

外语也是一样的

[code="sql"]
create table langhua
(
NAME varchar2(20),
KSDate date,
CH number,
MA number,
EN number
);
insert into langhua values('张三',to_date('2009-01-01','yyyy-mm-dd'),96,93,77);
insert into langhua values('张三',to_date('2009-01-02','yyyy-mm-dd'),95,96,67);
insert into langhua values('张三',to_date('2009-01-03','yyyy-mm-dd'),78,45,80);
insert into langhua values('李四',to_date('2009-01-01','yyyy-mm-dd'),76,73,97);
insert into langhua values('李四',to_date('2009-01-02','yyyy-mm-dd'),93,96,46);
insert into langhua values('李四',to_date('2009-01-03','yyyy-mm-dd'),98,85,80);
[/code]

  • 写回答

13条回答 默认 最新

  • boaiting 2012-01-12 09:34
    关注

    以下SQL已在Oracle测试通过:
    [code="sql"]select t.name,
    t.ch1,
    (select min(KSDate) from langhua where CH=t.ch1 and name=t.name) dch1,
    t.ch2,
    (select min(KSDate) from langhua where CH=t.ch2 and name=t.name) dch2,
    t.ma1,
    (select min(KSDate) from langhua where MA=t.ma1 and name=t.name) dma1,
    t.ma2,
    (select min(KSDate) from langhua where MA=t.ma2 and name=t.name) dma2,
    t.en1,
    (select min(KSDate) from langhua where EN=t.en1 and name=t.name) den1,
    t.en2,
    (select min(KSDate) from langhua where EN=t.en2 and name=t.name) den2
    from (select name,max(CH) ch1,min(CH) ch2,max(MA) ma1,min(MA) ma2,max(EN) en1,Min(EN) en2 from langhua group by name order by name) t[/code]

    如果出现相同的最高或最低分,时间取最早,也就是最小时间(min(KSDate))

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(12条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘