读书人

大家看下啥有关问题sql语句相关

发布时间: 2012-02-11 09:51:35 作者: rapoo

大家看下啥问题sql语句相关
with adoquery1 do
begin
close;
sql.Clear
sql.Add('select 客户姓名,房间号码,房间电话号码,预住天数 form[预订客户查询表],[电话号码] where ([预订客户查询表].房间号=[电话号码].房间编号) ');
open;
while not eof do
begin
cus_name1.Text:=adoquery1.FieldByName('客户姓名').AsString;
cus_rnum.Text:=adoquery1.FieldByName('房间号码').AsString;
cus_rtel.Text:=adoquery1.FieldByName('房间电话号码').AsString;
cus_day.Text:=adoquery1.FieldByName('预住天数').AsString;
Next;
end;
end;
我想实现从表1 预订客户查询表 和 表2 电话号码 中都有合起来搜索,相同字段是 预订客户查询表.房间号和电话号码.房间编号,从而使表2中的电话号码显示出来,运行的时候提示sql.add();有错误哦,请大家帮我看看,怎么样的语句才能达到我上面说的效果呢


[解决办法]
要用连接查询:
sql.Add(select T.客户姓名,T.房间号码,T.房间电话号码,D.预住天数 form 预订客户查询表 D JOIN 电话号码 T where (D.房间号=T.房间编号));
[解决办法]
with adoquery1 do
begin
close;
sql.Clear
//sql.Add('select 客户姓名,房间号码,房间电话号码,预住天数 form[预订客户查询表],[电话号码] where ([预订客户查询表].房间号=[电话号码].房间编号) ');
//把上面这句改为
sql.Add('select A.客户姓名,A.房间号码,A.房间电话号码,A.预住天数 form[预订客户查询表] AS A,[电话号码] As B where (A.房间号=B.房间编号) ');
open;
while not eof do
begin
cus_name1.Text:=adoquery1.FieldByName('客户姓名').AsString;
cus_rnum.Text:=adoquery1.FieldByName('房间号码').AsString;
cus_rtel.Text:=adoquery1.FieldByName('房间电话号码').AsString;
cus_day.Text:=adoquery1.FieldByName('预住天数').AsString;
Next;
end;
end;


上面我大概的改了一下,就是前面的那些字段你要指定它是哪个表中的字段。

读书人网 >.NET

热点推荐