问题是这样的,我创建了一个表CostTable,专门用来放需要缴费的项目,表格式如下:
           prj      amount     year    dep
           X1费     10000       1      001
           X2费     5000        1      001
           X3费     8000        1      002
           X4费     35000       2      001
           X5费     10000       2      002
           X6费     10000       3      001
现在我想在查询的时候,给出year和dep,然后在一个DBGRID里面显示出如下的结果:
例如:当给出条件‘year = 1’和‘dep = 001’时,DBGRID显示如下:
X1费     X2费
10000    5000请各位大虾帮忙啊~~

解决方案 »

  1.   

    select year,dep from CostTable where year = 1and dep = 001
      

  2.   

    我的想法是是否能够先在SQL数据库里写个存储过程来动态创建一个表,然后再在DEPHI里面调用存储过程,然后将表用DBGRID显示出来,高手请指点下啊~~急
      

  3.   

    根据查询结果,动态创建DBGrid的显示字段.
      

  4.   

    要那么複雜么,樓主直接在FORM裏放兩個COMBOBOX讓用戶選擇YEAR/DEP,然后DBGRID顯示對應的信息不就結了?
      

  5.   

    declare @sql varchar(8000)
    select @sql = 'select '
    select @sql = @sql + 'sum(case prj  when '''+prj+'''                           then amount  else 0 end) as '''+prj+''' ,'  from (select  prj from costtable  where yea=1 and dep=001 group by prj )  as aselect @sql = left(@sql,len(@sql)-1) + ' from costtable where yea=1 and dep=001  group by prj'exec(@sql)