免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1140 | 回复: 1
打印 上一主题 下一主题

请教多表计算的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-09 16:31 |只看该作者 |倒序浏览
我想在三个表中:
表一(工艺工时):
  ID      零部件名称     设备A       设备B
1001       车驾          80         88

表二(工作中心):
设备     台数     人数
A        5        5
B        5        6

表三(能力计算):
设备     汇总
A         ?
B         ?

  需要解决的问题是:求 (表三)汇总 = (表一)设备的工时/(表二)台数 。
该如何计算?在C++builder环境下运行如下程序有错。
但我这样做为什么不对呢?谢谢:

int s1, s2;
   DataModule1->;ADODataSet1->;CommandText = "select 台数 as sum1 from gzzx where 加工设备 = jgsb_A";
   DataModule1->;ADODataSet1->;CommandText = "select sum(jgsb_A) as sum2 from gylx";
   DataModule1->;ADODataSet1->;Open();
   s1 = StrToInt(DataModule1->;ADODataSet1->;FieldByName("sum1"->;AsFloat);
   s2 = StrToInt(DataModule1->;ADODataSet1->;FieldByName("sum2"->;AsFloat) ;
   s2 = s2/s1 ;
   DataModule1->;ADODataSet1->;Close();

  DataModule1->;ADOQuery3->;Close() ;
  DataModule1->;ADOQuery3->;SQL->;Clear() ;
  DataModule1->;ADOQuery3->;SQL->;Add("insert into fhcx(负荷汇总) values(s2)";
  DataModule1->;ADOQuery3->;Open();

论坛徽章:
0
2 [报告]
发表于 2003-04-09 19:21 |只看该作者

请教多表计算的问题。


  1. (设备号:sb,工时:gs,台数:ts 表1:table1,表2 :table2)
  2. 定义一个结构体(jiegouti)包含两字段 aa,bb
  3. bool __fastcall getshebeihuizong(Vector<jiegouti>; Vector1){
  4.    bool Flag = true;
  5.    Vector1->;clear();
  6.    String str_sql = "select a.sb sb,a.gs/b.ts aaa from table1 a,table2,b";
  7.    str_sql += " where a.sb = b.sb";
  8.     try{
  9.         DataModule1->;QY->;Close();
  10.         if(DataModule1->;QY->;Prepared)DataModule1->;QY->;UnPrepare();
  11.         DataModule1->;QY->;SQL->;Clear();
  12.         DataModule1->;QY->;SQL->;Add(str_sql);
  13.         DataModule1->;QY->;Open();
  14.         while(!DataModule1->;QY->;Eof){
  15.             jiegouti tmpInfo;
  16.             tmpInfo.aa= DataModule1->;QY->;FieldByName("sb")->;AsString;
  17.             tmpInfo.bb= DataModule1->;QY->;FieldByName("aaa")->;AsString;
  18.             Vector1->;push_back(tmpInfo);
  19.             DataModule1->;QY->;Next();
  20.         }
  21.         DataModule1->;QY->;Close();
  22.     }catch(...){
  23.         Flag = false;
  24.     }
  25.     return Flag;
  26. }
  27. 返回一个Vector,从Vector中取数据就可以了。
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP