to g_dragon and kuangning:
   测试项目是会变的,不好做两个表吧?视图好像也不好做啊

解决方案 »

  1.   

    to Danny_Yuan:  我已经发了,还没人回复
    to all:
      如果项目固定的话,我可以这样做:
    select 选手标志, 
          (select 测试得分 from 柔道测试得分表 B where A.选手标志=B.选手标志 and B.测试项目='100米' and A.测试项目=B.测试项目) as '100米得分'
    from 柔道测试得分表 A 希望能给大家一点启发.
      

  2.   

    不好,上述SQL语句有点问题,在外面的查询必须限制 选手标志 不重复
      

  3.   

    回复贴子: 
     Danny_Yuan(小丹尼) 回复于2001-9-1 10:41:40   
    gz  
     kuangning(郎之间,穷人) 回复于2001-9-1 10:47:43   
    用视图或者存储过程简单一些  
     g_dragon() 回复于2001-9-1 10:48:40   
    干吗不做成两个表啊,那容易很多了。
    要不查询起来好复杂啊  
     fan_7(fan) 回复于2001-9-1 10:58:01   
    to g_dragon and kuangning:
      测试项目是会变的,不好做两个表吧?视图好像也不好做啊  
     Danny_Yuan(小丹尼) 回复于2001-9-1 10:59:54   
    我不知道。
    将贴子转到数据库开发吧,马上有人帮你搞定, 关注。  
     fan_7(fan) 回复于2001-9-1 11:06:35   
    to Danny_Yuan:  我已经发了,还没人回复
    应该是:
    select 选手标志, 
          (select 测试得分 from 柔道测试得分表 B where A.选手标志=B.选手标志 and B.测试项目='100米' ) as '100米得分'
    from (select distinct 选手标志 from 柔道测试得分表 ) A 
    order by 选手标志 
      

  4.   

    使用交叉表查询好像可以,
    TRANSFORM aggfunction
    select 语句
    GROUP BY子句
    PIVOT pivotfield [in (value[,value2[,...]])]我以前也做过类似的,现在忘记了,找找看,呵呵.
      

  5.   

    最笨,也是最简单直接的方法。建一个临时表,然后把相应的值放进去。楼上的查询是不是Oracle才有的?MS SQL Server好像没 PIVOT 这个关键字。
      

  6.   

    TRANSFORM Sum(表1.项目得分) AS 项目得分OfSum
    SELECT 表1.ID
    FROM 表1
    GROUP BY 表1.ID
    PIVOT 表1.测试项目;就差最后一个"总得分"字段了,差一点就成功了,我吃饱饭再来想想,记住把分留给我呀!!