sql语句在数据库上执行没问题,但在做delphi时就报错了,请问该怎么办啊,很急!!各位大神求助!先谢谢大家了!
解决方案 »
- 我坚持上了
- 两个combobox,如果实现过滤
- 如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题--各位大侠进来看看....
- 使用delphi的时候,出现File name is too long for a Paradox version 5.0 table.错误
- 怎样在DBGrid的标题栏加上下箭头图标?
- 关于软件开发提成的事情。
- 关于数据库的动态查询问题?(分不够,可以再加!!!)
- tcp zerowindows 窗口零的状态
- 如何用“相对路径”来保存图象?
- 关于文件的传送
- delphi 常用的C/S架构开发方式有哪些?
- 使用ADO求和sum,数据库oracle 百年一见的问题!
begin
DBGrid1.Visible:=true;
if radiobutton1.Checked=true then
with ADOQuery1 do
begin
close;
sql.Clear;
sql.add('select 仓库编号,D.钢材编号,钢材名称,钢材规格,钢材单价,钢材质量等级,期初库存,总入库量,总出库量,期初库存+总入库量-总出库量 as 当前库存');
sql.add('from(select 仓库编号,A.钢材编号,钢材名称,钢材规格,钢材单价,钢材质量等级,期初库存');
sql.add('from 钢材 as A inner join 期初库存1 as B');
sql.add('on A.钢材编号=B.钢材编号');
sql.add('where 仓库编号=:a and A.钢材编号=:b)as C inner join(select 钢材编号,SUM(入库数量)as 总入库量');
sql.add('from 入库1');
sql.add('group by 钢材编号');
sql.add('having 钢材编号=:b)as D');
sql.add('on D.钢材编号=C.钢材编号 inner join');
sql.add('(select 钢材编号,SUM(出库数量)as 总出库量');
sql.add('from 出库1');
sql.add('group by 钢材编号');
sql.add('having 钢材编号=:b)as E on D.钢材编号=E.钢材编号');
Parameters.ParseSQL(SQL.Text, True);
parameters.ParamByName('a').Value:=edit1.Text;
parameters.ParamByName('b').Value:=edit2.Text;
open;
end;
if radiobutton2.Checked=true then
with ADOQuery1 do
begin
close;
sql.Clear;
sql.add('select 仓库编号,D.钢材编号,钢材名称,钢材规格,钢材单价,钢材质量等级,期初库存,总入库量,总出库量,期初库存+总入库量-总出库量 as 当前库存');
sql.add('from(select 仓库编号,A.钢材编号,钢材名称,钢材规格,钢材单价,钢材质量等级,期初库存');
sql.add('from 钢材 as A inner join 期初库存2 as B');
sql.add('on A.钢材编号=B.钢材编号');
sql.add('where 仓库编号=:c and A.钢材编号=:d)as C inner join(select 钢材编号,SUM(入库数量)as 总入库量');
sql.add('from 入库2');
sql.add('group by 钢材编号');
sql.add('having 钢材编号=:d)as D');
sql.add('on D.钢材编号=C.钢材编号 inner join');
sql.add('(select 钢材编号,SUM(出库数量)as 总出库量');
sql.add('from 出库2');
sql.add('group by 钢材编号');
sql.add('having 钢材编号=:d)as E on D.钢材编号=E.钢材编号');
Parameters.ParseSQL(SQL.Text, True);
parameters.ParamByName('c').Value:=edit1.Text;
parameters.ParamByName('d').Value:=edit2.Text;
open;
end;
end;
SqlStr := 'select 仓库编号,D.钢材编号,钢材名称,钢材规格,钢材单价,钢材质量等级,期初库存,总入库量,总出库量,期初库存+总入库量-总出库量 as 当前库存 ';
SqlStr := SqlStr + 'from(select 仓库编号,A.钢材编号,钢材名称,钢材规格,钢材单价,钢材质量等级,期初库存 ';
SqlStr := SqlStr + 'from 钢材 as A inner join 期初库存1 as B ';
SqlStr := SqlStr + 'on A.钢材编号=B.钢材编号 ';
SqlStr := SqlStr + 'where 仓库编号=''%s'' and A.钢材编号=''%s'')as C inner join(select 钢材编号,SUM(入库数量)as 总入库量 ';
SqlStr := SqlStr + 'from 入库1 ';
SqlStr := SqlStr + 'group by 钢材编号 ';
SqlStr := SqlStr + 'having 钢材编号=''%s'')as D ';
SqlStr := SqlStr + 'on D.钢材编号=C.钢材编号 inner join ';
SqlStr := SqlStr + '(select 钢材编号,SUM(出库数量)as 总出库量 ';
SqlStr := SqlStr + 'from 出库1 ';
SqlStr := SqlStr + 'group by 钢材编号 ';
SqlStr := SqlStr + 'having 钢材编号=''%s'')as E on D.钢材编号=E.钢材编号 ';
SqlStr := Format(SqlStr, [edit1.Text, edit2.Text, edit2.Text, edit2.Text]); ADOQuery1.sql.Clear;
ADOQuery1.SQL.Text := SqlStr ;
ADOQuery1.Open;
parameters.ParamByName('a').Value:=quotedstr(edit1.Text);
parameters.ParamByName('b').Value:=quotedstr(edit2.Text);