主表数据:编号   公司姓名    
          1     sgy
          2     aaa
          3     bbb
从表数据 公司编号  联系人
          1         甲
          1         乙
          1         丙
查询出这样的结果:公司名称    联系人
                   sgy       甲,乙,丙 
-----------------------------------------
谢谢,星期一结贴。

解决方案 »

  1.   

    没有这样的聚合函数,智能通过游标来循环连接好像一句SQL高不定把
      

  2.   

    query1.sql.text:='select 公司姓名,联系人 from 公司表 join 联系人表 where 公司编号=
    公司负责人编号';
    query1.execsql;
      

  3.   

    楼上只能得出列向数据,不能得出所要求的横向数据
    这个问题我解决过
    实际上最后也是一条SQL语句
    但是要程序辅助(循环语句)动态增加数据列
      

  4.   

    想要源码发Email [email protected]
      

  5.   

    问题解决,用自定义函数!
    CREATE table person_info(dept_name varchar(10),position_name varchar(10),person_name varchar(10))
    INSERT INTO person_info
    SELECT '資訊部','軟件編碼員','小李'
    UNION ALL SELECT '資訊部','軟件編碼員','小王'
    UNION ALL SELECT '行政部','秘書','小芳'select * from person_info--合並函數
    CREATE FUNCTION FunMergeCharField(@vchA varchar(10),@vchB varchar(10))
    RETURNS varchar(8000)
    AS
    BEGIN
    DECLARE @r varchar(8000)
    SET @r=''
    SELECT @r=@r+','+person_name FROM person_info WHERE dept_name=@vchA and position_name=@vchB
    RETURN(substring(@r,2,8000))
    END
    GO
    --删除测试
    DROP TABLE person_info
    DROP FUNCTION FunMergeCharField--調用
    select * from person_infoSELECT dept_name,position_name,在職人員=dbo.FunMergeCharField(dept_name,position_name) 
    FROM person_info 
    GROUP BY dept_name,position_name
    go
    参考CSDN以前的贴子的!