该如何写这条SQL语句?

hefeigunfire 2003-08-19 03:24:39
7个变量:Po、Ps、Pc、Qo、Qs、Qc、Sr(分别以1,2,3...7代替),1-3为输入变量,4-7为输出变量。数据如下(均为试验所得数据):
Po Ps Pc Qo Qs Qc Sr
(m) (m) (m) (m^3/h)(m^3/h)(m^3/h)
80.8 11.4 39.6 42.6 16.5 59.0 .494
80.6 11.5 48.7 42.8 .6 43.5 .494
80.3 11.3 45.4 42.6 4.5 46.7 .494
80.3 10.9 42.9 42.7 7.8 50.0 .494
...........
82.5 11.4 39.8 41.8 16.9 58.9 .468
82.5 11.4 39.8 41.8 16.9 58.9 .468
82.7 11.0 48.5 42.1 .8 43.0 .468

...............(省略N多数据)
假设现有实际TSr=0.48,找出要找出(TSr-Sr)的最小值对应的Sr,并返回相应的1-7实验数据。
m_pRecordset->Open("SELECT * FROM TestDataTable", theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic, adCmdText);
中的"SELECT * FROM TestDataTable"该如何写?
...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
StdAfx 2003-08-19
  • 打赏
  • 举报
回复
如下试试:

SELECT * FROM TestDataTable ORDER BY ABS(TSR-[Sr])

我做了测试,这条SQL语句确实没有任何问题的。
hefeigunfire 2003-08-19
  • 打赏
  • 举报
回复
还有,如果不设置成变量,而是直接输入数据,则得出的结果却并不随数据的改变而改变。
hefeigunfire 2003-08-19
  • 打赏
  • 举报
回复
我把TSr设置为一个变量,应定义并且初始化,但是在调试的时候说:
Unhandled expection in DBProg.exe(KERNEL32.DLL):
0xE06D7363:Microsoft C++ Expection
在m_pRecordset->Open时出的错!怎么回事?
UpdateData(TRUE);
// TODO: Add extra initialization here
// 使用ADO创建数据库记录集
m_pRecordset.CreateInstance(__uuidof(Recordset));

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。jingzhou xu
try
{
m_pRecordset->Open("SELECT * FROM TestDataTable ORDER BY ABS(m_eSr-Sr)", // 查询DemoTable表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
StdAfx 2003-08-19
  • 打赏
  • 举报
回复
我几年没有用SQL了,所以不敢保证一定正确。

SELECT * FROM TestDataTable ORDER BY ABS(TSR-Sr)
这样第一条记录应该就是你所要的吧
hefeigunfire 2003-08-19
  • 打赏
  • 举报
回复
任大侠帮帮忙!

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧