是一工资报表。假设现在我的SQL内的工资表为PAY----字段basepay(基本工资),outpay(加班费),bonace(奖金),jobsub(职位津贴),substract(扣款合计), 现在就简单概术。 oughtpay(应发合计)=basepay+outhpay+bonace+jobsub
 infactpay(实发合计)=basepay+outhpay+bonace+jobsub-substract
关键是  要显示如下(用DBGRID)按个人的工号查询(一次只可显示一个人的内容),下面也就是每个人各月工资的总结比较000001---张式项目        一月  二月    三月  四月  五月  六月----  十二月
扣款合计    0      100
应发合计  5000     5000
实发合计  5000     4900 ''项目''哪一列不知如何做出来的?做单个的实发合计都没问题。

解决方案 »

  1.   

    典型的交叉列表,建议使用第三方控件比如cell什么的,或者直接建立内存表然后按照要求填写内容
      

  2.   

    使用CASE 
    把数据列横过来就可以了
      

  3.   

    也可以再建立一个表,把项目列先写进去啊,然后用SQL语句查询出来后你想么的,接些来就不用说了
      

  4.   

    写SQL的话就使用UNION 运算符
        { < query specification > | ( < query expression > ) }
            UNION [ ALL ]
            < query specification | ( < query expression > )
                [ UNION [ ALL ] < query specification | ( < query expression > )
                    [ ...n ] ] 
    否则用ClientDataset
      

  5.   

    用连接查询将它合并在一张表里面在添入DBGgrid