主题:双表表项判断查询
有两个表分别是订单表和会员表,需要当 订单表其一表项“订单客户名称” 与 会员表的“会员姓名”相同时 执行一定的折扣计算(订单表中的总额*折扣率=实际支付总额) 请问delphi该如何实现?
这个我自己想出来的方法,虽然没有语法错误,可执行了没有反映,高手们看看是什么原因?
procedure TfrmRoomBalance.DBEdit2Change(Sender: TObject);
begin
with DM, DM.qryOrderRooms, DM.qryVIP do //订单表,会员表
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM OrderRooms WHERE 0=0 '); //查找订单表中 客户名称
SQL.Add('AND GuestName =');
Open; First;
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM VIP WHERE 0=0 '); //查找会员表中会员名
SQL.Add('AND VIPName =');
Open; First;
if FieldByName('GuestName').AsString = FieldByName('VIPName').AsString then //当2表项名字相同时
DBEdit2.Text := FloatToStr(StrToFloat(DBedit1.Text)*
StrToFloat(qryVIP.FieldByName('Discount1').AsString));
end; //执行订单表总金额*会员表折扣率的计算
end;
end;
小弟对delphi不怎么懂,请高手们说详细一点 谢谢
这个我自己想出来的方法,虽然没有语法错误,可执行了没有反映,高手们看看是什么原因?
procedure TfrmRoomBalance.DBEdit2Change(Sender: TObject);
begin
with DM, DM.qryOrderRooms, DM.qryVIP do //订单表,会员表
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM OrderRooms WHERE 0=0 '); //查找订单表中 客户名称
SQL.Add('AND GuestName =');
Open; First;
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM VIP WHERE 0=0 '); //查找会员表中会员名
SQL.Add('AND VIPName =');
Open; First;
if FieldByName('GuestName').AsString = FieldByName('VIPName').AsString then //当2表项名字相同时
DBEdit2.Text := FloatToStr(StrToFloat(DBedit1.Text)*
StrToFloat(qryVIP.FieldByName('Discount1').AsString));
end; //执行订单表总金额*会员表折扣率的计算
end;
end;
小弟对delphi不怎么懂,请高手们说详细一点 谢谢