日期:2014-05-16  浏览次数:20827 次

SQL语句或C#去实现 求方法 急~~~~~~~~
例如
表A里面有以下列
姓名 科目 分数  日期
小A  语文  90  2013-1-1
小A  数学  91  2013-1-1
小A  英语  92  2013-1-1
小A  语文  90  2013-2-2
小A  数学  91  2013-2-2
小A  英语  92  2013-2-2
小C  语文  93  2013-1-1
小C  数学  94  2013-1-1
小C  英语  95  2013-1-1
小C  语文  93  2013-2-2
小C  数学  94  2013-2-2
小C  英语  95  2013-2-2

如何用sql语句或C#程序   实现如下格式
姓名    日期     语文  数学   英语 
小A  2013-1-1   90   91    92
小A  2013-2-2   90   91    92
小C  2013-1-1   93   94    95
小C  2013-2-2   93   94    95




sql c#

------解决方案--------------------


with tbA as
(
     select 'A' xm,'语文' km,90 fs,date'2013-01-01' rq from dual union all
     select 'A' xm,'数学' km,91 fs,date'2013-01-01' rq from dual union all
     select 'A' xm,'英语' km,92 fs,date'2013-01-01' rq from dual union all
     select 'A' xm,'语文' km,90 fs,date'2013-02-01' rq from dual union all
     select 'A' xm,'数学' km,91 fs,date'2013-02-01' rq from dual union all
     select 'A' xm,'英语' km,92 fs,date'2013-02-01' rq from dual
)


select xm "姓名",rq "日期",
       sum(decode(km,'语文',fs,0)) "语文",
       sum(decode(km,'数学',fs,0)) "数学",
       sum(decode(km,'英语',fs,0)) "英语"
from tbA
group by xm,rq
order by xm,rq

    姓名     日期    语文  数学  英语
------------------------
1 A 2013/1/1 90 91 92
2 A 2013/2/1 90 91 92