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
(
公司名称 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
总未收款 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