begin
qrytotal.Close;
qrytotal.SQL.Clear;
qrytotal.SQL.Add('insert ondutycount ');
qrytotal.SQL.Add('select usercard as 编号,usercardname as 姓名,CONVERT(VARCHAR(7),usercarddate, 20) as 月份,');
qrytotal.SQL.Add('sum(case when usercardsate=''加班'' then 1 else 0 end) as 加班,');
qrytotal.SQL.Add('sum(case when usercardsate=''矿工'' then 1 else 0 end) as 矿工,');
qrytotal.SQL.Add('sum(case when usercardsate=''请假'' then 1 else 0 end) as 请假,');
qrytotal.SQL.Add('sum(case when usercardsate=''早退'' then 1 else 0 end) as 早退,');
qrytotal.SQL.Add('sum(case when usercardsate=''迟到'' then 1 else 0 end) as 迟到,');
qrytotal.SQL.Add('sum(case when usercardsate=''异常'' then 1 else 0 end) as 其他 ');
qrytotal.SQL.Add('from usercardlog ');
qrytotal.SQL.Add('GROUP BY CONVERT(VARCHAR(7), usercarddate, 20),usercard, usercardname');
qrytotal.ExecSQL;
ShowMessage('sql====='+sql.text);
frReport1.ShowReport;
end;==================
上段代码,执行有错。数据是显示在报表里。
???
不知道怎么改?
=================
qrytotal.Close;
qrytotal.SQL.Clear;
qrytotal.SQL.Add('insert ondutycount ');
qrytotal.SQL.Add('select usercard as 编号,usercardname as 姓名,CONVERT(VARCHAR(7),usercarddate, 20) as 月份,');
qrytotal.SQL.Add('sum(case when usercardsate=''加班'' then 1 else 0 end) as 加班,');
qrytotal.SQL.Add('sum(case when usercardsate=''矿工'' then 1 else 0 end) as 矿工,');
qrytotal.SQL.Add('sum(case when usercardsate=''请假'' then 1 else 0 end) as 请假,');
qrytotal.SQL.Add('sum(case when usercardsate=''早退'' then 1 else 0 end) as 早退,');
qrytotal.SQL.Add('sum(case when usercardsate=''迟到'' then 1 else 0 end) as 迟到,');
qrytotal.SQL.Add('sum(case when usercardsate=''异常'' then 1 else 0 end) as 其他 ');
qrytotal.SQL.Add('from usercardlog ');
qrytotal.SQL.Add('GROUP BY CONVERT(VARCHAR(7), usercarddate, 20),usercard, usercardname');
qrytotal.ExecSQL;
ShowMessage('sql====='+sql.text);
frReport1.ShowReport;
end;==================
上段代码,执行有错。数据是显示在报表里。
???
不知道怎么改?
=================
解决方案 »
- 菜鸟问题,往高手帮忙解决一下
- intraweb的问题,可能并不难,都来试试吧
- UDP发数据为什么会这样?
- delphi 在内存中资源释放问题。
- 数据库连接的判断
- 关于往sqlserver中存/取大数据(文件)的问题?
- real类型怎样转换成integer类型?怎么转?(急,在线等!)
- win8+delphi7 Delphi7编译程序速度明显比在WIN7下速度慢很多
- 文件操作出错,请大家看看错在哪里
- 我写了一个小共享软件,8000多行,大家能不能进来帮我分析一下看有没有市场
- delphi 关于socket.ReceiveBuf接收超过一定长度就出错的问题,请达人们指点!!!
- 分布式数据开发,套间及同步问题
qrytotal.Close;
qrytotal.SQL.Clear;
qrytotal.SQL.Add(' insert ondutycount ');
qrytotal.SQL.Add(' select usercard as 编号,usercardname as 姓名,CONVERT(VARCHAR(7),usercarddate, 20) as 月份,');
qrytotal.SQL.Add(' sum(case when usercardsate=''加班'' then 1 else 0 end) as 加班,');
qrytotal.SQL.Add(' sum(case when usercardsate=''矿工'' then 1 else 0 end) as 矿工,');
qrytotal.SQL.Add(' sum(case when usercardsate=''请假'' then 1 else 0 end) as 请假,');
qrytotal.SQL.Add(' sum(case when usercardsate=''早退'' then 1 else 0 end) as 早退,');
qrytotal.SQL.Add(' sum(case when usercardsate=''迟到'' then 1 else 0 end) as 迟到,');
qrytotal.SQL.Add(' sum(case when usercardsate=''异常'' then 1 else 0 end) as 其他 ');
qrytotal.SQL.Add(' from usercardlog ');
qrytotal.SQL.Add(' GROUP BY CONVERT(VARCHAR(7), usercarddate, 20),usercard, usercardname');
qrytotal.ExecSQL;
ShowMessage('sql====='+sql.text);
frReport1.ShowReport;
end;==================
上段代码,执行有错。数据是显示在报表里。
???
不知道怎么改?
=================
试试我的这一段。
你必须保证你的SQL语句是完全正确的,才能执行。
报错“command text dose not return a result set ”
查了资料什么 qrytotal.ExecSQL;
要改为 qrytotal.open
后来又报了一个
"qrytotal Missing sql property"
最后还是改回原样啦
qrytotal.Close;
qrytotal.SQL.Add('select * from ondutycount');
qrytotal.Open;
然后再showreportExecSQL只是执行sql语句,并不打开数据集。而你这段sql是insert的,所以用ExecSQL并没有错。
只是最后要再执行一下查询,并open数据集。