with ADOQ_FBXH do
begin
close;
SQL.Clear;
SQL.Add('select max(kfbxh) max_kfbxh from ZZP_SCBZPJH where sfff=2');
SQL.Add('and substr(kfbxh,1,6) =:cs_date');
Parameters.ParamByName('cs_date').Value:=YEAR_S+MONTH_S+day_S;
Prepared;
Open;
end;
出现错误提示‘非单组分组函数’,但我在pl/sql中执行不出错,应怎样写???
begin
close;
SQL.Clear;
SQL.Add('select max(kfbxh) max_kfbxh from ZZP_SCBZPJH where sfff=2');
SQL.Add('and substr(kfbxh,1,6) =:cs_date');
Parameters.ParamByName('cs_date').Value:=YEAR_S+MONTH_S+day_S;
Prepared;
Open;
end;
出现错误提示‘非单组分组函数’,但我在pl/sql中执行不出错,应怎样写???
begin
close;
SQL.Clear;
SQL.Add('select max(kfbxh) max_kfbxh from ZZP_SCBZPJH where sfff=2');
// SQL.Add('and substr(kfbxh,1,6) =:cs_date'); //这样行不行?
// Parameters.ParamByName('cs_date').Value:=YEAR_S+MONTH_S+day_S;
Prepared;
Open;
end;
http://topic.csdn.net/t/20030710/19/2013965.html
SQL.Add('and substr(kfbxh,1,6) =:cs_date');//and 前是不是应该有个空格啊
SQL.Add(' and substr(kfbxh,1,6) =:cs_date');
begin
close;
SQL.Clear;
SQL.Add('select max(kfbxh) max_kfbxh from ZZP_SCBZPJH where sfff=2 ');
SQL.Add('and substr(kfbxh,1,6) =:cs_date');
Parameters.ParamByName('cs_date').Value :=quotedstr(YEAR_S+MONTH_S+day_S);
Prepared ;
Open;
end;
带参数的SQL语句,数据库引擎会提示输入参数的。
create table ZZP_SCBZPJH(kfbxh varchar2(10),sfff int);
/
insert into ZZP_SCBZPJH
select '070101',2 from dual union all
select '070201',2 from dual union all
select '070101',1 from dual union all
select '070101',2 from dual union all
select '070101',3 from dual;
/
--执行查询
select max(kfbxh) max_kfbxh from ZZP_SCBZPJH where sfff=2 and substr(kfbxh,1,6) ='070101';
/
--输出结果
070101//// with ADOQ_FBXH do
begin
close;
SQL.Clear;
SQL.Add('select max(kfbxh) max_kfbxh from ZZP_SCBZPJH where sfff=2 and substr(kfbxh,1,6) =:cs_date');
Parameters.ParamByName('cs_date').Value:='070101';
Prepared;
Open;
end;再dbgrid中可以正常显示结果070101
:)
/insert into ZZP_SCBZPJH
select '0701011',2 from dual union all
select '0702012',2 from dual union all
select '0701013',1 from dual union all
select '0701014',2 from dual union all
select '0701015',3 from dual;
/
--执行查询
select max(kfbxh) max_kfbxh from ZZP_SCBZPJH where sfff=2 and substr(kfbxh,1,6) ='070101';
/
--输出结果
0701014请揭帖
:)
另外,就是会不会是substr这个函数的问题?你用的是什么数据库?
其实,kfbxh由年2位月2位日2位再加2位顺序号,每天生成序号如2007-7-16,第一次kfbxh为07071601;第二次07071602等;2007-7-17,第一次kfbxh为07071701;第二次07071702等
2、将substr(kfbxh,1,6) =:cs_date改成kfbxh like :cs_date,传参数时,
Parameters.ParamByName('cs_date').Value:=YEAR_S+MONTH_S+day_S+'%';