--orselect FMOInterID,FIsJoin,sum( FJoinQtyPiece) as FJoinQtyPiece from a where FIsJoin =1 group by FMOInterID,FIsJoin union all select FMOInterID,FIsJoin, FJoinQtyPiece from a where FIsJoin =0FMOInterID FIsJoin FJoinQtyPiece ----------- ----------- ------------- 21986125 1 30 21986126 0 120(所影响的行数为 2 行)
--还是这样?--使用一个辅助函数...create function F_a (@id int) returns varchar(100) as begin declare @str varchar(100) set @str ='' select @str =@str +'+'+cast(FJoinQtyPiece as varchar(10)) from a where FMOInterID =@id select @str =substring(@str,2,len(@str)-1) --print @str return(@str) end select *from a select FMOInterID,dbo.f_a(FMOInterID) as FQtyPiece from a --where FIsJoin =1 group by FMOInterID,FIsJoinFMOInterID FQtyPiece ----------- --------------- 21986125 10+20 21986126 120(所影响的行数为 2 行)
from a
where FIsJoin =1
group by FMOInterID,FIsJoin
union all
select FMOInterID,FIsJoin, FJoinQtyPiece
from a
where FIsJoin =0FMOInterID FIsJoin FJoinQtyPiece
----------- ----------- -------------
21986125 1 30
21986126 0 120(所影响的行数为 2 行)
returns varchar(100)
as
begin
declare @str varchar(100)
set @str =''
select @str =@str +'+'+cast(FJoinQtyPiece as varchar(10)) from a
where FMOInterID =@id
select @str =substring(@str,2,len(@str)-1)
--print @str
return(@str)
end select *from a select FMOInterID,dbo.f_a(FMOInterID) as FQtyPiece from a
--where FIsJoin =1
group by FMOInterID,FIsJoinFMOInterID FQtyPiece
----------- ---------------
21986125 10+20
21986126 120(所影响的行数为 2 行)