CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

表结构问题!在线等!高分!

楼主majia_fk(fffff)2004-12-02 08:52:19 在 Delphi / 数据库相关 提问

现有一表内容如下  
  xh               xm         kc           cj  
  0001           小明     语文         66  
  0001           小明     数学         85  
  0001           小明     英文         100  
  0002           里司     语文         55  
  0002           里司     数学         100  
  0002           里司     英文         80  
  ……           ……     …………  
   
  怎样把该表转化为如下格式:  
   
  学号           姓名     语文     数学     英文  
  0001           小明     66         85       100  
  0002           里司     55         100     80  
  ……           ……     …………  
   
  转化时还需注意,上面只是列举了3门成绩  
  如果事前不能确定该表有几门成绩该如何转化? 问题点数:0、回复次数:8Top

1 楼luke5678()回复于 2004-12-02 08:58:32 得分 0

declare   @sql   varchar(8000)  
  set   @sql   =   'select   xh,xm'  
  select   @sql   =   @sql   +   ',sum(case   kc   when   '''+kc+'''   then   cj   end)   ['+kc+']'  
    from   (select   distinct   kc   from   test)   as   a  
  select   @sql   =   @sql+'   from   test   group   by   xm'  
  exec(@sql)  
   
  Top

2 楼majia_fk(fffff)回复于 2004-12-02 09:01:01 得分 0

luke5678(奇异)你能说的详细点吗?  
  我用的是ado+accessTop

3 楼qizhanfeng(glacier)回复于 2004-12-02 09:05:15 得分 0

Create   table   test   (name   char(10),km   char(10),cj   int)  
  go  
  insert   test   values('张三','语文',80)  
  insert   test   values('张三','数学',86)  
  insert   test   values('张三','英语',75)  
  insert   test   values('李四','语文',78)  
  insert   test   values('李四','数学',85)  
  insert   test   values('李四','英语',78)  
  select   *   from   test  
  declare   @sql   varchar(8000)  
  set   @sql   =   'select   name'  
  select   @sql   =   @sql   +   ',max(case   km   when   '''+km+'''   then   cj   end   )['+km+']'  
  from   (select   distinct   km   from   test)   as   a  
  select   @sql   =   @sql+'   from   test   group   by   name'  
  print(@sql)  
  exec(@sql)Top

4 楼qizhanfeng(glacier)回复于 2004-12-02 09:05:53 得分 0

不好意思没看到  
  accessTop

5 楼majia_fk(fffff)回复于 2004-12-02 09:11:25 得分 0

没关系,想办法解决了就行啊  
  该怎么做好呢?Top

6 楼luke5678()回复于 2004-12-02 09:14:27 得分 0

//不好意识,有个小小错误~~  
   
  --测试  
   
  Create   table   test   (xh   char(10),xm   char(10),kc   char(10),cj   int)  
  go  
  insert   test   values('0001','小明','语文',66)  
  insert   test   values('0001','小明','数学',85)  
  insert   test   values('0001','小明','英语',100)  
  insert   test   values('0002','李四','语文',55)  
  insert   test   values('0002','李四','数学',100)  
  insert   test   values('0002','李四','英语',80)  
   
  -----------------------------------------------------------------  
   
  declare   @sql   varchar(8000)  
  set   @sql   =   'select   xh,xm'  
  select   @sql   =   @sql   +   ',sum(case   kc   when   '''+kc+'''   then   cj   end)   ['+kc+']'  
    from   (select   distinct   kc   from   test)   as   a  
  select   @sql   =   @sql+'   from   test   group   by   xh,xm   order   by   xh'  
  exec(@sql)  
   
  ----------------------------------------------------------------  
   
  --结果  
   
  xh                                   xm                               数学             英语           语文  
  0001             小明             85 100 66  
  0002             李四             100 80 55  
  Top

7 楼luke5678()回复于 2004-12-02 09:15:25 得分 0

倒!!!!!  
   
  机子上没装access  
  一会帮你去试试Top

8 楼majia_fk(fffff)回复于 2004-12-02 09:19:20 得分 0

你写的sql语句可以在adoquery中运行吗?  
  Top

相关问题

  • 如何拆分表结构?
  • 高手请进,节点复用的树结构如何建表结构?(100分)
  • SOS 高手救命啊!!!关于数据结构的线性表很简单100分全送
  • 在线等,高分求一个建树的算法,表结构与一般的不太相同.
  • 如何把 SQL表结构,,导到ACCESS 加急,,在线等分数不多,大家救救命呀,谢谢......
  • 水晶报表自动适应数据库结构的问题?在线100分等
  • 表结构转换
  • 复制表结构
  • 表结构设计
  • 更改表结构

关键词

  • 数学
  • 转化
  • sql
  • kc
  • 语文
  • km
  • cj
  • xm
  • xh
  • 表

得分解答快速导航

  • 帖主:majia_fk

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo