select t1.f1,f2=t1.f2-t2.f2 from t1 left join t2 on t1.f1=t2.f1

解决方案 »

  1.   

    改一下:
    select t1.f1,f2=isnull(t1.f2,0)-isnull(t2.f2,0) from t1 full join t2 on t1.f1=t2.f1
      

  2.   

    update a
    set 
        a.f2 = (a.f2-b.f2)
    from 
        t1 a,t2 b
    where
        a.f1 = b.f1
      

  3.   

    再改:
    select isnull(t1.f1,t2.f1),f2=isnull(t1.f2,0)-isnull(t2.f2,0) from t1 full join t2 on t1.f1=t2.f1
      

  4.   

    应该是这样的Select 
    IsNull(T1.f1,T2.f1) As f1,
    (IsNull(T1.f1,0)-IsNull(T2.f1,0)) As f2
    from T1
    Full Join T2
    On T1.f1=T2.f1
      

  5.   

    select
        f1 = case when a.f1 is null then b.f1 else a.f1,
        f2 = isnull(a.f2,0) - isnull(b.f2,0)
    from
        t1 a
    full outer join
        t2 b
    where
        a.f1 = b.f1
      

  6.   

    select
        f1 = case when a.f1 is null then b.f1 else a.f1,
        f2 = isnull(a.f2,0) - isnull(b.f2,0)
    from
        t1 a
    full outer join
        t2 b
    on
        a.f1 = b.f1
      

  7.   

    t1数据:
    f1    f2   f3
    A1    A2   10  
    B1    B2   20 
    C1    C2   30
    E1    D2   40
    F1    E2   50
    G1    F2   60t2的数据:
    f1    f2   f3
    A1    A2   10  
    B1    B2   20 
    C1    F2   30
    E1    D2   40
    F1    E2   50
    G1    G2   60如果t1.f1和t1.f2与t2.f1和t2.f2相等时,t1.f3-t2.f3,比如实现的数据如下:
    f1    f2   f3
    A1    A2    0  
    B1    B2    0 
    C1    C2   30
    C1    F2  -30
    E1    D2    0
    F1    E2    0
    G1    F2   60又如何实现呢?
      

  8.   

    select isnull(t1.f1,t2.f1),f2=isnull(t1.f2,0)-isnull(t2.f2,0),
    f3=case when (isnull(t1.f2,0)=isnull(t2.f2,0)) then t1.f3-t2.f3 else (isnull(t1.f2,0)-isnull(t2.f2,0))end
    from t1 full join t2 on t1.f1=t2.f1