create table A
(
    公司名称 varchar(50),
    合同金额 int,
    未收款 int,
    总金额 int,
    总未收款 int,
    合同类型 varchar(50)
)insert A select '中国海尔集团',45000,25000,54000,32000,'采购合同'
insert A select '中国海尔集团',6500,4500,54000,32000,'销售合同'
insert A select '中国海尔集团',2500,2500,54000,32000,'退货合同'
insert A select '大闵山啤酒',9000,5500,9000,5500,'啤酒合同'
insert A select '大闵山啤酒',6200,5900,6200,5900,'白酒合同'
insert A select '金顶装饰',4500,0,4500,0,'装修合同'
insert A select '金美装饰材料',3800,1300,3800,1300,'材料合同'
create Function T_fun(@C varchar(1000))
returns varchar(8000)
as
begin
   declare @T_SQL varchar(8000)
   set @T_SQL=''
   select @T_SQL=@T_SQL + 合同类型 + ':' + cast(合同金额 as varchar) +'/' + cast(未收款 as varchar) + ' ' from A where 公司名称=@C
   return @T_SQL
end
select T.公司名称,
(select top 1 总金额 from A where 公司名称=T.公司名称),
(select top 1 总未收款 from A where 公司名称=T.公司名称),
dbo.T_fun(公司名称)
from
(select distinct 公司名称 from A) T

解决方案 »

  1.   

    create  table aa(公司名称 varchar(30),合同金额 decimal(10,2),  未收款 decimal(10,2),   总金额 decimal(10,2), 
      总未收款 decimal(10,2),   合同类型  varchar(30))insert aa
    select'中国海尔集团',    45000 ,   25000   ,   54000 ,32000   ,'采购合同'
    union select
    '中国海尔集团' ,   6500   ,  4500    ,   54000 ,32000   ,'销售合同' union select
    '中国海尔集团' ,   2500   ,  2500    ,   54000 ,32000   ,'退货合同' union select
    '大闵山啤酒' ,   9000  ,   5500   ,    9000 ,5500  ,'啤酒合同' union select
    '大闵山啤酒'  ,  6200  ,   5900     ,  6200 ,5900  ,'白酒合同' union select
    '金顶装饰' ,   4500  ,    0  ,      4500 ,0  ,' 装修合同' union select
    '金美装饰材料'    ,  3800  ,   1300     ,  3800 ,1300   ,'材料合同'
    create function getstr(@ varchar(50))
    returns Nvarchar(400)
    as 
    begin
    declare @str Nvarchar(100)
    set @str=N' '
    select @str=@str+' '+合同类型+':'+cast(合同金额 as varchar(8))+'/'+cast(未收款 as varchar(8)) from aa
    where 公司名称=@
    set @str=right(@str,len(@str)-1)
    return @str
    end
    GO
    公司名称                           总金额                                      总未收款                                     value                                                                                                                                                                                                                                                            
    ------------------------------ ---------------------------------------- ---------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
    大闵山啤酒                          15200.00                                 11400.00                                  白酒合同:6200.00/5900.00 啤酒合同:9000.00/5500.00
    金顶装饰                           4500.00                                  .00                                        装修合同:4500.00/0.00
    金美装饰材料                         3800.00                                  1300.00                                   材料合同:3800.00/1300.00
    中国海尔集团                         54000.00                                 32000.00                                  退货合同:2500.00/2500.00 销售合同:6500.00/4500.00 采购合同:45000.00/25000.00