我想实现将一个班的成绩 按照六十分以下,七十到八十,九十以上分成三组。
在DBChart的条形图里,X轴是这三个分数段,Y轴式个分数段的人数。
这个ADOQuery里的SQL语句该怎么写啊?? 
数据库是sql2000的。
DBChart1.Series[1].XLabelsSource
DBChart1.Series[1].XValues.ValueSource
DBChart1.Series[1].YValues.ValueSource
这三个都该等于什么啊?

解决方案 »

  1.   

    XLabelsSource是坐标X轴的刻度数据源,YValues.ValueSource是Y值数据源,XValues.ValueSource我一般不用。
      

  2.   

    如果是SqlServer的数据库,可以用case  when语法进行条件分类
      

  3.   

    如果是SqlServer的数据库,可以用case when语法进行条件分类,如果是ACCESS的话可以用IIF语句。
      

  4.   


    我写的sql语句是这样的:
    SELECT SUM(CASE WHEN SCORE < 60 THEN 1 ELSE 0 END) GROUP_60,
           SUM(CASE WHEN SCORE =>70 AND SCORE <= 80 THEN 1 ELSE 0 END) GROUP_78,
           SUM(CASE WHEN SCORE >=90 THEN 1 ELSE 0 END) GROUP_90
      FROM CLASS_SCORE 我不知道DBChart1.Series[1].XLabelsSource
    DBChart1.Series[1].XValues.ValueSource
    DBChart1.Series[1].YValues.ValueSource该填什么?
      

  5.   

    我知道要填字段名啊。可是我想在X轴上是分组 也就是会有60分以下,70-80,90以上这三个条形
    所以我不明白应该填哪个字段名。
    可能是我对DBChart的理解有误?
    请把应该填什么直接写出来告诉我吧。谢谢啦!!!
      

  6.   


    procedure TFrmbpm_Review.getBPM_ContAMM(inte_user: String);
    var
      i: integer;
      FBarSeries: TFastLineSeries;
    begin
      with oraQuery4 do
      begin
        close;
        sql.Text := ' select '+
                    ' a.inte_user,b.cdate,nvl(a.cont_amm,0) cont_amm '+
                    ' from '+
                    ' (select INTE_USER,to_char(cont_date,''yyyy-mm'') cont_date, '+
                    ' sum(decode(currency,''CNY'',cont_amm,''USD'',cont_amm*b_rate.rate,cont_amm)) cont_amm '+
                    ' from cont_table,b_rate '+
                    ' where cont_date is not null and inte_user=:inte_user'+
                    ' group by INTE_USER,to_char(cont_date,''yyyy-mm'')) a,'+
                    ' (select to_char(add_months(sysdate,-rownum),''yyyy-mm'') cdate from dual'+
                    ' connect by rownum<7) b '+
                    ' where a.cont_date(+)=b.cdate';    ParamByName('inte_user').value := inte_user;
        Open;
      end;
      for i:=0 to DBChart1.SeriesCount-1 do DBChart1.Series[i].Destroy;
      FBarSeries := TFastLineSeries.Create(DBChart1);
      FBarSeries.ParentChart := DBChart1;
      FBarSeries.ColorEachPoint := true;
      DBChart1.Title.Text[0] := '签约图示';
      FBarSeries.XLabelsSource := 'cdate';
      FBarSeries.Marks.Style:=TSeriesMarksStyle(0);
      FBarSeries.DataSource := OraQuery4;
      FBarSeries.YValues.ValueSource := 'cont_amm';
      FBarSeries.Active := True;
    end;参考一下吧