在握设计的一个人事管理的软件中有个问题,其中有项是关于合同的管理,合同中有个合同的结束日期,但合同的结束日期很可能不会只有一个,签了几次合同就会有几次合同的终止日期,所以就有合同终止日期1, 合同终止日期2, 合同终止日期3, 合同终止日期4,但是这些合同终止日期并非每个都有的,我们检测的是最后的合同到期日期,那这个终止日期就可能是1,2,3,4中一个,我开始是设置了一个calcfield来显示最后一次合同终止日期,他在dbgrid中是可以显示出来的,但是我想在sql语句中用的时候是提示的字段不存在

解决方案 »

  1.   

    主从表我开始倒是想过,不过开始的时候是想过,不过主要是为了使用人员的方便,他们的表主要是excel做的,复制到系统中来如果是用主从表就不方便了.
      

  2.   

    那是你SQL語句的問題,字段存在不可能衛空的!
      

  3.   

    同意:aiirii(ari-淘金坑) 的
    你可以每次合同可以录入一条记录,四次终止日期录入四次,查看的时候可以用SQL语句查出显示在DBGRID中不就可以了
      

  4.   

    怎么用sql语句显示下面的表呢?
        合同终止日期1, 合同终止日期2, 合同终止日期3, 合同终止日期4
    张三 
    李四 
    王五
      

  5.   

    to:Hank(星星农场) 
    这个了解了,我现在就是想看看能否把它向
             合同终止日期1, 合同终止日期2, 合同终止日期3, 合同终止日期4
    张三     2005-1-1        2006-1-1       2006-7-1       2006-12-1
    李四     2005-1-1        2006-1-1       
    王五     2005-1-1        2006-1-1       2006-12-1
      

  6.   

    这个也没问题
    从从表中以LEFT  JOIN  模式将横表转换成综表不就完了,当然要简单的话就给所有的人的每次合同加一个ID号控制是第几次签合同,剩下的就很简单了SELECT 员工编号,员工姓名,合同一,合同二,合同三 FROM 员工表
    LEFT JOIN (SELECT 员工编号,合同日期 AS 合同一 FROM 合同表 WHERE 合同ID=1) 合同一 ON 员工表.员工编号=合同一.合同编号
    LEFT JOIN (SELECT 员工编号,合同日期 AS 合同二 FROM 合同表 WHERE 合同ID=2) 合同二 ON 员工表.员工编号=合同二.合同编号
    LEFT JOIN (SELECT 员工编号,合同日期 AS 合同三 FROM 合同表 WHERE 合同ID=3) 合同三 ON 员工表.员工编号=合同三.合同编号等等等等,如果更NB,可以做到列动态变化,也无所谓啊
    因为张三的合同一可能是2005-1-1,李四的可能是1995-1-1,王五可能要合同9
      

  7.   

    Hank(星星农场) 高手啊,
    你的这个sql太高级啊,看不太懂啊,编译说是操作符丢失.
      

  8.   

    Hank(星星农场) 你真的太厉害,你的那段SQL是没有问题的,太感谢了.可惜只有100分.