一个简单sql语名问题

spidercrow 2005-06-24 03:04:20
原表:
OUTTIMES | FORM_DATE | AREAID
----------------------------------------------------
6 | 2005-05-26 | 01
1 | 2005-05-26 | 02
0 | 2005-05-26 | 03


目的:
01 | 02 | 03 | FORM_DATE
--------------------------------
6 | 1 | 0 | 2005-05-26


应该怎么写啦?
...全文
74 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengzulin 2005-06-24
  • 打赏
  • 举报
回复
to spidercrow(cwg)
你什么知道有多少列??
mengzulin 2005-06-24
  • 打赏
  • 举报
回复
不仅仅要用存储过程,还要游标,构成动态SQL然后用exec执行可以得到.我是不赞成这种方法去做,这种设计太差了.不值得去做.你如果你一定要这样做我找一个URL给你你自己去看.我不会这样做的.
spidercrow 2005-06-24
  • 打赏
  • 举报
回复
按照它的顺序取呀,
paoluo 2005-06-24
  • 打赏
  • 举报
回复
写存储过程不就可以了
mengzulin 2005-06-24
  • 打赏
  • 举报
回复
楼主你把这个项目close了吧!!这里你可以用动态SQL得到.但你在程序中又什么取呢??,取出后后又什么显示呢??
paoluo 2005-06-24
  • 打赏
  • 举报
回复
楼主,你的日期固定只有这一个吗??
paoluo 2005-06-24
  • 打赏
  • 举报
回复
楼主的意思是这个01、02是存在数据库中的数据的,事先不知道的,所以不能这样直接拿来用的。
mengzulin 2005-06-24
  • 打赏
  • 举报
回复
create table tablename --学生成绩表
(
OUTTIMES int, --学生编号
FORM_DATE varchar(12), --课程编号
AREAID char(2) --成绩
)

insert into tablename(OUTTIMES,FORM_DATE,AREAID) values (6,'2005-05-26' ,'01')
insert into tablename(OUTTIMES,FORM_DATE,AREAID)values (1,'2005-05-26','02')
insert into tablename(OUTTIMES,FORM_DATE,AREAID)values (0,'2005-05-26','03')

select max(case AREAID when '01' then OUTTIMES else ''end) as [01],
max(case AREAID when '02' then OUTTIMES else ''end) as [02],
max(case AREAID when '03' then OUTTIMES else ''end) as [03],FORM_DATE from tablename group by FORM_DATE

drop table tablename
spidercrow 2005-06-24
  • 打赏
  • 举报
回复
列名01,02,03,是从原表里AREAID里取的呀
mengzulin 2005-06-24
  • 打赏
  • 举报
回复
select max(case AREAID when '01' thne OUTTIMES else ''end) as 01,max(case AREAID when '02' thne OUTTIMES else ''end) as 02,max(case AREAID when '03' thne OUTTIMES else ''end) as 03,FORM_DATE from tableName group by FORM_DATE

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧