例如 :(表A 的第二个字段中的值只可能是2种情况)
表A                   表B    表A中的aaa出现的次数 表A中bbb出现的次数
胡子 aaa              胡子       2                       0
面包 bbb              面包       0                       1
胡子 aaa              石头       1                       1
石头 aaa            
石头 bbb 问题 1:
请问在SQL SERVER中如何将表A的数据统计并创建表B?
问题 2:
如果表A追加多条记录后,如何更新表B的数据?我想的头都大了,请各位指点一下阿

解决方案 »

  1.   

    问题 1:
    请问在SQL SERVER中如何将表A的数据统计并创建表B?
    select name,(case when id='aaa' then 1 else 0 end) as aaa 
    ,(case when id='bbb' then 1 else 0 end) as bbb
    from tablename
    group by name问题 2:
    如果表A追加多条记录后,如何更新表B的数据?
    触发器
      

  2.   

    --动态去查询就可以了.
    --2005 如下:declare @t table(a varchar(10),b varchar(10))
    insert into @t select '胡子','aaa'
    union all select '面包','bbb'
    union all select '胡子','aaa'
    union all select '石头','aaa'
    union all select '石头','bbb'select * from @t
    pivot
    (count(b)
     for b in ([aaa],[bbb])
    )as pit
    /*
    a          aaa         bbb
    ---------- ----------- -----------
    胡子         2           0
    面包         0           1
    石头         1           1(3 行受影响)
    */