CREATE FUNCTION [dbo].[ufn_GetPromotionTimeByClientID] (@inClient int,@intuploadID int) Returns nvarchar(1000) AS
BEGIN
Declare @RetRecordList nvarchar(1000)
Declare @PromotionCode nvarchar(30)
Declare @PromotionDesci nvarchar(50)
Declare @Cnt int
Declare @LastItem nvarchar(30)
Declare RecCursor CURSOR FOR
Select ph.PromotionCode, ph.PromotionDesci, Count(*) NoOfTimes
From Web_tblInitOrderUploadDetails iud
Join sales_tblOrderH oh on iud.ECINVID = oh.OrderHID
Left Join Web_tblInitUploadPromotion iup on iud.InitOrderUploadID = iup.UploadID
Left Join sales_tblPromotionHeader ph on iup.PromotionID = ph.PromotionID
Where iup.PromotionID IS NOT NULL And oh.ClientID =@inClient
and ph.PromotionID in(select PromotionID from Web_tblInitUploadPromotion where UploadID =@intuploadID )
Group By ph.PromotionCode, ph.PromotionDesci
Set @LastItem = ''
Open RecCursor
Fetch Next From RecCursor Into @PromotionCode, @PromotionDesci,@Cnt
Set @RetRecordList = RTrim(@PromotionDesci) + ' [' + Convert(varchar, @Cnt) + '],'
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM RecCursor INTO @PromotionCode, @PromotionDesci,@Cnt
BEGIN
IF @@FETCH_STATUS = 0
Set @RetRecordList = @RetRecordList + RTrim(@PromotionDesci) + ' [' + Convert(varchar, @Cnt) + '],'
END
END
Close RecCursor
Deallocate RecCursor
--PRINT @RetRecordList
Return @RetRecordList
END
SQL SERVER 将多条记录转化为一条输出
最新推荐文章于 2025-01-05 10:50:57 发布