請看下面:
                        公司ID  部門ID
1003 m001 y001 c001 d001 gdg 154.00 zwei1 2009-07-31 11:04:42 hfh 2009-07-31 
1003 m001 y001 c001 d001 GCG 15.00 zwei2 2009-07-31 11:19:46 HFH 2009-07-31 
1003 m001 y001 c001 d001 jhbjb 42.00 zwei3 2009-07-31 11:20:54 fxcf 2009-07-31 
1003 m001 y001 c001 d002 jhbjb 42.00 zwei3 2009-07-31 11:20:54 fxcf 2009-07-31 
請問下如何根據公司ID和部門ID,如何讓它們有相同的數據,就隻顯示一行,如下面要顯示的結果:
公司ID  部門ID
c001 d001
c001 d002

解决方案 »

  1.   


    --这样?
    select distinct 公司ID,部門ID  from 表
      

  2.   

    SELECT DISTINCT 公司ID,部门ID FROM TB?
      

  3.   

    select distinct 公司ID,部門ID  from 表
      

  4.   

    描述:将如下形式的数据按id字段合并value字段。
    id    value
    ----- ------
    1     aa
    1     bb
    2     aaa
    2     bbb
    2     ccc
    需要得到结果:
    id     value
    ------ -----------
    1      aa,bb
    2      aaa,bbb,ccc
    即:group by id, 求 value 的和(字符串相加)
    */
    --1、sql2000中只能用自定义的函数解决
    create table tb(id int, value varchar(10))
    insert into tb values(1, 'aa')
    insert into tb values(1, 'bb')
    insert into tb values(2, 'aaa')
    insert into tb values(2, 'bbb')
    insert into tb values(2, 'ccc')
    gocreate function dbo.f_str(@id int) returns varchar(100)
    as
    begin
        declare @str varchar(1000)
        set @str = ''
        select @str = @str + ',' + cast(value as varchar) from tb where id = @id
        set @str = right(@str , len(@str) - 1)
        return @str
    end
    go--调用函数
    select id , value = dbo.f_str(id) from tb group by iddrop function dbo.f_str
    drop table tb
    --2、sql2005中的方法
    create table tb(id int, value varchar(10))
    insert into tb values(1, 'aa')
    insert into tb values(1, 'bb')
    insert into tb values(2, 'aaa')
    insert into tb values(2, 'bbb')
    insert into tb values(2, 'ccc')
    goselect id, [value] = stuff((select ',' + [value] from tb t where id = tb.id for xml path('')) , 1 , 1 , '')
    from tb
    group by iddrop table tb
    看样子得用这个
      

  5.   

    這麼快我以前用DSITINCT以為它隻能讓一個字段不相同,沒有用到二個,還是學的不夠好SQL,哈哈謝謝上面的