三個表:
userScore(學生成績):userno(號數),objectno(科目),score(成績)
uobject(科目表):objectno(科目號),objectname(科目名)
users(學生資料表):userno(學號),username(姓名)....要的結果:學號 科目1 科目2 科目3
1 30 50 60 (成績)
2 55 66 88
...
...急啊!help!!
userScore(學生成績):userno(號數),objectno(科目),score(成績)
uobject(科目表):objectno(科目號),objectname(科目名)
users(學生資料表):userno(學號),username(姓名)....要的結果:學號 科目1 科目2 科目3
1 30 50 60 (成績)
2 55 66 88
...
...急啊!help!!
解决方案 »
- 怪了,取拼音声母函数
- 在sql中查找表名可以,在delphi中用query查找却是空数据,为什么?
- 哪里有installshield下载?
- 看了一篇好文章,有点稀里糊涂,谁能不能用delphi再说一次?
- 高分求助!急!intraweb程序之间的数据传递问题
- 一段c语言,哪位大神给翻译成delphi的啊再次谢过了,
- 我想用treeview和listview做一个象WINDOWS的资源管理器,不用SHELL控件的。
- 碰上了个很热情又可爱漂亮的MM怎么办?
- 8410分求解:如何在发送正文为HTML格式的邮件(同时带附件)!!!
- SQL的数据插入问题!
- 关于DHTMLEdit如何才能保存或者得到内涵图片,高手请进
- 小弟初学。下载了一个带源码的系统。程序运行说明如下,我不知道该如何做,请大虾指点!
然后主Query里Select * from 表 就行了..
用不着写那么长的SQL语句..
sum(case objectname when 科目1 then score else 0 end) as 科目1,
sum(case objectname when 科目2 then score else 0 end) as 科目2,
sum(case objectname when 科目3 then score else 0 end) as 科目3,
from
(
select a.userno,c.objectname,b.score
from users a
join
userScore b
on a.userno=b.userno
join
uobject c
on b.objectno=c.objectno
)t
group by userid
http://community.csdn.net/Expert/topic/3496/3496151.xml?temp=.537533
Create table test (userno char(10),objectno char(10),score 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 userno'
select @sql = @sql + ',max(case objectno when '''+objectno+''' then score end )['+objectno+']'
from (select distinct objectno from test) as a
select @sql = @sql+' from test group by userno'
print(@sql)
exec(@sql)
(號數 char(10),
成績 integer,
科目 char(10)
)
insert into 表1
select '1',60,'数学'
union
select '1',43,'物理'
union
select '1',100,'语文'
union
select '2',87,'语文'
union
select '2',99,'数学'
union
select '2',89,'物理'
union
select '2',87,'语文'
go select * from 表1DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT 號數'
SELECT @SQL= @SQL+ ',max(CASE WHEN 科目 = ''' + 科目 + ''' THEN 成績 else 0 END) [' + 科目 + ']' FROM (SELECT DISTINCT 科目 FROM 表1) A
SET @SQL=@SQL+ ' FROM 表1 GROUP BY 號數'
EXEC (@SQL) drop table 表1