首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

报表 存储过程解决方案

2013-01-26 
报表 存储过程本帖最后由 wrost 于 2012-09-18 12:33:10 编辑表 T1、T2T1.f1 和 T2.f2 关联我需要如下数据:

报表 存储过程
本帖最后由 wrost 于 2012-09-18 12:33:10 编辑 表 T1、T2
T1.f1 和 T2.f2 关联


我需要如下数据:
1.
查找 T1中, (T1.f1 = T2.f2 )以外的记录,就是找出T1中没有关联上的语句,这会查找出很多数据
select * from t1 a where not exists(select 1 from t2 where a.f1=f2)

2.
统计3个数据:
bad_count = select count( * ) from t1 a where not exists(select 1 from t2 where a.f1=f2)

all_count = select count( * ) from t1 

percent = bad_count/all_count 

 问题:我想把3个统计数据,还有一个数据表输出到报表,是不是要用到存储过程?
怎么输出到报表,原来我都只是输出一个表,没有还输入单一的统计数据?
我用的reportMachine,也可以用fastReport说明,

[解决办法]
Output输入值,Select输入数据。
[解决办法]
大概是这样的思路,具体代码你补充完整
var
 a,b,c:Integer;
begin

  //1 ?÷??êy?Y
  ADOQuery1.Close;
  ADOQuery1.SQL.Text := '';
  ADOQuery1.Open;

  // 2.èy??±?á?
  ADOQuery2.Close;
  ADOQuery2.SQL.Text := '';
  ADOQuery2.Open;
  a := Self.ADOQuery2.fielbyname('').value;

  ADOQuery2.Close;
  ADOQuery2.SQL.Text := '';
  ADOQuery2.Open;
  b := Self.ADOQuery2.fielbyname('').value;

   c = a/b;

  RMReport1.LoadFromFile('');
  self.RMReport1.Dictionary.Variables.Add('a',a);
  self.RMReport1.Dictionary.Variables.Add('b',b);
  self.RMReport1.Dictionary.Variables.Add('c',c);
  RMReport1.ShowReport
[解决办法]
存储过程可以。
添加变量代码写出来了你哪里还不清楚
  报表上[a]  就可以取到变量a的值
  

[解决办法]

create procedure getCnt
 @bad_count int output
@all_count int output
@percent float output
as
begin
declare @cnt1 int, @cnt2 int

select @cnt1=count (*) from ...
select @cnt2=count (*) from ...

set @bad_count=@cnt1
set @all_count=@cnt2
set @percent=@cnt1/@cnt2
end

至于用Delphi怎么调用,LZ自己研究一下吧

热点排行