我用的是Delphi7+Access,欲实现轻轨票价的查询。
数据库中表名为“zd”,有“站点序号”、“站点名”、“与下站距离”三个字段,在form上有两个DBlookupcomboBox控件连接“站点名”字段用来选择要查询的起始站和终止站。
我遇到的问题是如何把选择的两个站点名所对应的“与下站距离”字段之间的数据进行累加以求出两站间的距离(当然还要减去终止站“与下站距离”数据),求出两个站点间的距离再求票价就简单了。麻烦各位了!
数据表结构如下:
站点序号 站点名 与下站距离(公里) 1 火车站 3 2 清大路 3.5 3 理工大学 4
数据库中表名为“zd”,有“站点序号”、“站点名”、“与下站距离”三个字段,在form上有两个DBlookupcomboBox控件连接“站点名”字段用来选择要查询的起始站和终止站。
我遇到的问题是如何把选择的两个站点名所对应的“与下站距离”字段之间的数据进行累加以求出两站间的距离(当然还要减去终止站“与下站距离”数据),求出两个站点间的距离再求票价就简单了。麻烦各位了!
数据表结构如下:
站点序号 站点名 与下站距离(公里) 1 火车站 3 2 清大路 3.5 3 理工大学 4
解决方案 »
- 文件内存映射跟数据传输有什么关系?
- 如何把大图片(1280*1024)首尾相连,连接10张,20张,30张都可以,只要代码,谢谢
- sql火急!
- Adoquery 的一个大Bug
- 如何获取Webbrowser控件中所浏览的HTML页面的长和宽
- 如何在Delphi中和BCB的IMAGE控件中实现图片的放大和缩小.好似windows的看图软件的功能.
- 从网上下的cd抓轨道dll只有Akrip32.dll和Akrip32.dcu,没有Akrip32.pas怎样使用它?
- 关键字:报表
- Access2000中的一个字段是Teacher/Student,Table用到该字段就报错!我该怎么办?
- 我帖子上的问题解决了,我想结贴,可我试了好几次,CSDN都说‘不能给自己加分’!!!!!!!!真是岂有此理——小人之心度君子之腹!!!
- 请问table.emptytable是清空表的,那adotable用什么方法实现呢?
- 当用户点击了“查询”按纽后,如何将鼠标变成漏斗形状,从而使得用户不可以再点击?
那你的站点顺序一定要正确,查询的时候用>起点站<终点站 (select zdxh,zdmc,count(与下站的距离)as 与下站的距离 from zd where zdh>起点站序列号 and zdh<终点站序列号 )
站点序号 站点名 与下站距离(公里) 1 火车站 3 2 清大路 3.5 3 理工大学 4
假如选择起始站点(火车站)和终点站(理工大学),则应该计算出的结果是7.5。
如果是这样的话应该查询站点序号大于等于起始站的序号且小于终点站序号的所有记录中与下站距离数的和。
SQL语句就不写了。
则有,要查A站到B站的距离,先查出来A站相对B站在起始站一头还是终点站一头。A在B的起始站方向,则查的方式是: A->B,这样子就从A站开始把下站的距离加起来,一直加到B站,由于不到B的下一站,所以要扣减B站记录的到下一站的距离。A在B的终点站方向,则查的方式是: B->A,这样子就从B站开始把下站的距离加起来,一直加到A站,由于不到A的下一站,所以要扣减A站记录的到下一站的距离。
where 站点序号 >= 起点序号 and 站点序号 < 终点序号说明: 终点序号值应 >= 起点序号值
function TForm1.getlong:integer;
var
sitename:string;
s:integer;//距离
begin
adotable1.location('站点名',startsite_edit.txt,[]);//定位开始站点
s:=0;
sitename:=adotable.fieldbyname('站点名').asstring;
while sitename<>endsite_edit.txt do
begin
s:=s+adotable.fieldbyname('与下站距离(公里)').asinteger;
adotable.next;
sitename:=adotable.fieldbyname('站点名').asstring;
end;
getlong:=s;
end;