我也知道是这样子做得,可是sql语句写出来就不对啊..不能拿第一张中的A【年假基数】-sum第二张A【年假时间】,运算不被识别...

解决方案 »

  1.   

    修改一下
    如何计算两张表的数据?一张是员工的【年假信息表】,里面有员工的年假,时间是比如 
    ID name  年假(小时)     剩余年假(小时)
    1   A     200               200 
    2   B     100               100 
    另一张表为【请假表】里面有 
    ID  name  请年假时间(小时)   
     1  A         20
     2  B         20
     3  B         10
     4  A         10 
    因为是请假表,所以员工可以出现多次
    如何把第二张表里面A,B用掉的年假从第一张表里面扣除啊? 
    结果在第一张表里面显示:
    ID  name   年假(小时) 剩余年假(小时)
     1    A       200        170 
     2     B       100          70
      

  2.   

    我现在写的可以更改你的name为A的剩余假期,有一点要注意,在update中只能更改一个name,所以最好加一个参数从前台程序传入
    代替where name = 'A'这样的地方create table #年假信息表
    (
        ID int,
        name nchar(1),
        年假 int,
        剩余年假 int
    )
    insert into #年假信息表 values(1,'A',200,200)
    insert into #年假信息表 values(2,'B',100,100)create table #请假表
    (
        ID int,
        name nchar(1),
        请年假时间 int
    )insert into #请假表 values(1,'A',20)
    insert into #请假表 values(2,'B',20)
    insert into #请假表 values(3,'B',10)
    insert into #请假表 values(4,'A',10)declare @vocation_A int
    select @vocation_A = sum(请年假时间) from  #请假表 
    where name = 'A'
    group by name 
    update #年假信息表 set 剩余年假 = 剩余年假 - @vocation_A
    where #年假信息表.name = ‘A’
    select * from #年假信息表drop table #年假信息表
    drop table #请假表-----------------------------Result-------------------------
    1 A 200 170
    2 B 100 70
      

  3.   


    select *,年假-(select sum(请年假时间) from 请假表 where 年假信息表.name=请假表.name) as 剩余年假 
    from 年假信息表这样?
      

  4.   

    不行,在sql环境中试验就知道了...谢谢