Access and Sql(50分)

  • 主题发起人 主题发起人 蓝昕
  • 开始时间 开始时间

蓝昕

Unregistered / Unconfirmed
GUEST, unregistred user!
表T1(A1,B1,C1),T2(A2,B2,C2),T3(A3,B3,C3)
T1中的A1与T2中的A2关联,T2中的A2与T3中的A3相关联
现要查找T1中的B1,T2中的B2,T3中的所有字段,条件是满足A3等于某一个值。

SQL语句如下:
select T1.B1,T2.B2,T3.B3,T3.C3 FROM T1,T2,T3 WHERE T1.A1=T2.A2 AND T2.A2=T3.A3 AND T3.A3:=a;

执行提示为: two few parameters.....

怎么回事?如何修改?

 
select T1.B1,T2.B2,T3.B3,T3.C3 FROM T1,T2,T3 WHERE T1.A1=T2.A2 AND T2.A2=T3.A3 AND T3.A3:=a;
~~~~~
T3.A3=:a
qru
 
select t1.b1,t2.b2 from t1 join t2 on t1.a1=t2.a2 join t3 on t2.a2=t3.a3 where t3.a3=?
 
sql有误啊!按楼上两位改吧!
 
按 完颜康 的改吧
 
select T1.B1,T2.B2,T3.A3,T3.B3,T3.C3
FROM T1,T2,T3
WHERE (T1.A1=T2.A2) AND (T2.A2=T3.A3) AND (T3.A3:=:a);
Parameters.ParambyName('a').Value:=........
 
对按蜿蜒抗的改吧,T3.A3=:a,引入变量
 
我在CQUERY.SQL.ADD()中添加了以上语句,提示为:
...has improperly defined a parameter object

如果不用变量,直接读取EDIT中的值呢?
 
query1.SQL.add('select T1.B1,T2.B2,T3.B3,T3.C3 FROM T1,T2,T3 WHERE T1.A1=T2.A2 AND T2.A2=T3.A3 AND T3.A3:='''+Edit1.Text+'''')
 
To:EXPERT
我就是这样写的呀,可运行时提示我 too few parameters.
 
TO:HIGOAL
提示: syntax error in from clause
 
换了一台机子执行成功。
看样子语句没什么问题。
还是感谢大家
捡分那 *~*

不过还想请教大家的是如何实现模糊查询?可能涉及多层子表的嵌套查询,条件的随意组合。
 
模糊查询用Like子句就行了!

Query1.SQL.ADD('Select * from 表 Where 字段 Like :DD');
ParamByName('DD').Value:='%'+Edit1.text+'%';
嵌套查询只要在Where子句中使用AND,OR,Join函数就行了。
这方面的例子论坛里有很多,就不说明了。
条件的随意组合我到今天也没想出有什么好的方法,我还是用的最古老的条件语句,先按
可能出现的情况一条条写好SQL语句,到时看情况调用。
谁能有什么简单好用的方法,一定别忘了告诉我!
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
539
import
I
I
回复
0
查看
680
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部