请高手指教sql查询问题(30分)

  • 主题发起人 主题发起人 bearonline
  • 开始时间 开始时间
B

bearonline

Unregistered / Unconfirmed
GUEST, unregistred user!
query1.sql.add('select mydata.交易帐号,mydata.交易发生日,mydata.交易时间,mydata.POS交易流水,mydata.交易金额,mydata.POS机代号');

query1.SQL.Add(',mydata.交易币别,mydata.POS交易时间,mydata.POS交易日期,manager.商户名称,receiver.收单行名称,no.处理码说明,trade.交易名称 from "mydata.db" mydata,"manager.db" manager,"receiver.db" receiver,"no.db" no,"trade.db" trade ');

query1.sql.add('where 交易帐号 like '+''''+'%'+Form5.FlatEdit2.Text+'%'+''' and mydata.商户代号=manager.商户代号 and mydata.收单行代号=receiver.收单行代号 and mydata.处理码=no.处理码 and mydata.交易类型码=trade.交易类型码');

query1.Active:=true;

以上代码错了,在no.处理码说明,trade.交易名称那里出了问题。
在没加这两个表以前是正常的,其代码如下:

query1.sql.add('select mydata.交易帐号,mydata.交易发生日,mydata.交易时间,mydata.POS交易流水,mydata.交易金额,mydata.交易类型码,mydata.处理码,mydata.POS机代号');

query1.SQL.Add(',mydata.交易币别,mydata.POS交易时间,mydata.POS交易日期,manager.商户名称,receiver.收单行名称 from "mydata.db" mydata,"manager.db" manager,"receiver.db" receiver ');

query1.sql.add('where 交易帐号 like '+''''+'%'+Form5.FlatEdit19.Text+'%'+''' and mydata.商户代号=manager.商户代号 and mydata.收单行代号=receiver.收单行代号');

query1.Active:=true;

no.db,trade.db 这两表分别以‘处理码’和‘交易类型码’为索引用于与mydata.db的关联,请问到底是哪里出了问题,为何加了这两个的关联查询后会出问题?
 
如果换我,我会这样做:
1、把所有数据清空(备份一下),然后再执行这条sql语句,看
会不会出错;
2、把所有你认为出错的关联去掉,执行sql语句,看有没有错误;
3、重新建表,再检查。
 
老大,你写的这个sql也太烦了点了,为什么不用视图解决哦?
这样多方便!
 
sql语句太长了,把长的sql语句换成几个query.sql.add,多写几个。
 
你检查一下是否加入的两个表中含有‘交易帐号’字段。
没有的话请把错误提示写上。
 
是不是数据结构或索引有问题
 
把你的错误信息贴出来先。
 
老大,no,trade 是SQL的关键字,不应该用的,请你换成别的字母作为字段名!!
 
接受答案了.
 
后退
顶部