系数表:xsb     x_zj   x_zb   x_pt  x_tz  x_jb  x_jy
     1.0    1.5     1.2   1.6  2.6    0.8数据表: input     专家号  专病号   普通号   特诊号  急白号  急夜号  金额
      100     20       50       60      30      10
   .........
       50      60      20       100      58     20
要求
   金额=专家号*x_zj+...........+急夜号*x_jy从系数表中提取相应系数 更新数据表的金额具体的SQL语句如何写?谢谢!

解决方案 »

  1.   

    如下程序有错误procedure TForm1.SpeedButton4Click(Sender: TObject);
     var
     i_zj,i_zb,i_pt,i_tz,i_jb,i_jy:double;
    begin
      query2.Close;
      query2.SQL.clear;
      query2.SQL.add('select x_zj as xzj,x_zb as xzb,x_pt as xpt,x_tz as xtz,x_jb as xjb,x_jy as xjy from xsb');
      query2.open;
      i_zj:=query2.fieldbyname('xzj').asfloat;
      i_zb:=query2.fieldbyname('xzb').asfloat;
      i_pt:=query2.fieldbyname('xpt').asfloat;
      i_tz:=query2.fieldbyname('xtz').asfloat;
      i_jb:=query2.fieldbyname('xjb').asfloat;
      i_jy:=query2.fieldbyname('xjy').asfloat;
      query2.sql.clear;
      query1.sql.add('update input set    d_je=d_zj*i_pt+d_zb*i_zb+d_pt*i_pt+d_tz*itz+d_jb*i_jb+d_jy*i_jy');
      query1.ExecSQL;
    end;
      

  2.   

    好像没有所说的那么复杂吧,只一个简单SQL语句即可:
    'update input set 金额=专家号*x_zj+...........+急夜号*x_jy from xsb'
      

  3.   

    query1.Close;
      query1.sql.clear;
      query1.sql.add('update input set d_je=d_zj*(select x_zj from xsb)+d_zb*(select x_zb from xsb)+d_pt*(select x_pt from xsb)+d_tz*(select x_tz from xsb)+d_jb*(select x_jb from xsb)+d_jy*(select x_jy from xsb)');
      query1.ExecSQL;
    解决