我有表a如下: 学号 竞赛科目 成绩 (其中竞赛科目为列表框组件,包含语文,数学,英语)
001 语文 72
001 英语 64
002 数学 71我的想法是:上面的表显示在dbgrid中,然后通过按钮点击,在组件stringgrid中显示成如下内容 学号 语文 数学 英语
001 72 64
002 71 数据库用的是sql 2000,刚刚学delphi,请高手指点下小弟,最好能提供详细的实例,感谢,另外如果我想新增个科目如物理之类的,应该要怎么做呢?
001 语文 72
001 英语 64
002 数学 71我的想法是:上面的表显示在dbgrid中,然后通过按钮点击,在组件stringgrid中显示成如下内容 学号 语文 数学 英语
001 72 64
002 71 数据库用的是sql 2000,刚刚学delphi,请高手指点下小弟,最好能提供详细的实例,感谢,另外如果我想新增个科目如物理之类的,应该要怎么做呢?
max(case 竞赛科目 when '语文' then 成绩 else 0 end) 语文,
max(case 竞赛科目 when '数学' then 成绩 else 0 end) 数学,
max(case 竞赛科目 when '物理' then 成绩 else 0 end) 物理,
from tb
group by 学号
正解,如果没有同一科目的多条记录,可以不用max
请问一下,'max' 的作用是什么?
dinoalex
你好,现在有了一点眉目,只是我只会把结果集写进另外一个dbgrid里面,stringgrid不会操作,具体要写进去,是不是还要写个循环,一个个的添加?
能给个与stringgrid关联的语句吗?
stringgrid1.cell[i,0]:= adoquery1.fields[i].fieldname; //加表头
r:= 1;
while not adoquery1.eof do
begin
for i:= 0 to adoquery.fieldcount -1 do
stringrid1.cell[i,r]:= adoquery1.fields[i].asstring;
inc(r);
end大致是这样吧,手写,没测,你自己测吧