H
heping
Unregistered / Unconfirmed
GUEST, unregistred user!
复杂SQL语句请教:
(开发环境:DELPHI + ADO + MS SQL SERVER2000)
在一个表中,有一堆数据,如下:
ckm仓库名
hpbh货品编号
hpmc货品名称
js件数
ckm hpbh hpmc js
------------------------------------
仓库1 001123 大米 12
仓库1 001234 小米 9
仓库2 002456 小麦 7
......
在作移库的操作时,就是:把:这个仓库的数据移动到:另一个仓库中去。
作批量操作。
我让:用户,对:件数作:三个选择:
一:每件货,只操作:1件;
二:每件货,操作,库存的全部件数。
三:每件货,操作,用户输入的一个数据。
(当用户输入的件数,大于,库存全部件数时,系统使用库存全部件数。)
选择出货品时,新仓库中,增加,原仓库,相应减少。
当:移动的件数是:原仓库中的全部件数时,把:原仓库中相应的记录删除,
当:移动的件数比:原仓库中的全部件数小时,原仓库中相应的记录的件数减少。
下面:我写出:选择货品的一段代码,
请帮忙,看看:删除或减少原仓库的件数,用一个SQL语句,如何写。谢谢。
var
ttt, js_ttt: string;
begin
ttt := ' select ckm,hpbh,hpmc,';
if RadioButton_js_1.Checked then //每件货,只操作:1件
js_ttt := ' 1'
else if RadioButton_js_kcjs.Checked then //每件货,操作,库存的全部件数
js_ttt := ' js'
else if RadioButton_js_zdy.Checked then //每件货,操作,用户输入的一个数据
js_ttt := ' (case when ' + FormatFloat('0.0', StrToFloatDef(Trim(Edit_js_zdy.Text), 0.0)) + '>=js then js ' +
' else ' + FormatFloat('0.0', StrToFloatDef(Trim(Edit_js_zdy.Text), 0.0)) + ' end)';
ttt := ttt + js_ttt;
ttt := ttt + ' from table_123';
with ADOQuery_tmp do
begin
Close;
Sql.Clear;
Sql.Add(ttt);
Prepared := True;
Open;
end;
end;
我想,可能要用:IF...ELSE...但,我写不出来,请大侠帮忙。谢谢。
(开发环境:DELPHI + ADO + MS SQL SERVER2000)
在一个表中,有一堆数据,如下:
ckm仓库名
hpbh货品编号
hpmc货品名称
js件数
ckm hpbh hpmc js
------------------------------------
仓库1 001123 大米 12
仓库1 001234 小米 9
仓库2 002456 小麦 7
......
在作移库的操作时,就是:把:这个仓库的数据移动到:另一个仓库中去。
作批量操作。
我让:用户,对:件数作:三个选择:
一:每件货,只操作:1件;
二:每件货,操作,库存的全部件数。
三:每件货,操作,用户输入的一个数据。
(当用户输入的件数,大于,库存全部件数时,系统使用库存全部件数。)
选择出货品时,新仓库中,增加,原仓库,相应减少。
当:移动的件数是:原仓库中的全部件数时,把:原仓库中相应的记录删除,
当:移动的件数比:原仓库中的全部件数小时,原仓库中相应的记录的件数减少。
下面:我写出:选择货品的一段代码,
请帮忙,看看:删除或减少原仓库的件数,用一个SQL语句,如何写。谢谢。
var
ttt, js_ttt: string;
begin
ttt := ' select ckm,hpbh,hpmc,';
if RadioButton_js_1.Checked then //每件货,只操作:1件
js_ttt := ' 1'
else if RadioButton_js_kcjs.Checked then //每件货,操作,库存的全部件数
js_ttt := ' js'
else if RadioButton_js_zdy.Checked then //每件货,操作,用户输入的一个数据
js_ttt := ' (case when ' + FormatFloat('0.0', StrToFloatDef(Trim(Edit_js_zdy.Text), 0.0)) + '>=js then js ' +
' else ' + FormatFloat('0.0', StrToFloatDef(Trim(Edit_js_zdy.Text), 0.0)) + ' end)';
ttt := ttt + js_ttt;
ttt := ttt + ' from table_123';
with ADOQuery_tmp do
begin
Close;
Sql.Clear;
Sql.Add(ttt);
Prepared := True;
Open;
end;
end;
我想,可能要用:IF...ELSE...但,我写不出来,请大侠帮忙。谢谢。