IF OBJECT_ID('tempdb.dbo.#Support')ISNOTNULLDROPTABLE#Support SELECTTOP10000 ID=IDENTITY(INT,1,1)INTO#Support FROM SYSCOLUMNS a ,SYSCOLUMNS b
IF OBJECT_ID('tempdb.dbo.#ItemList')ISNOTNULLDROPTABLE#ItemList SELECT RowNumber=IDENTITY(INT,1,1),
CAST(LTRIM(RTRIM(SUBSTRING(a.Item,b.ID,CHARINDEX(',',a.Item+',',b.ID)-b.ID)))ASVARCHAR(8000))AS Item
INTO#ItemList FROM@ItemAS a
INNERJOIN#Support AS b WITH (NOLOCK) ON b.ID<=LEN(a.Item)AND CHARINDEX(',',','+a.Item,b.ID)=b.ID
SELECT ID,COUNT(1)FROM#A WITH(NOLOCK)GROUPBY ID
HAVINGCOUNT(1)>1SELECT A.*,
Item=(SELECT RTRIM(item)+','FROM#A WITH(NOLOCK)WHERE ID=A.ID
FOR XML PATH(''))FROM#Model A WITH(NOLOCK)
动态sql
IF OBJECT_ID ('tempdb.dbo.##SoldQTY')ISNOTNULLDROPTABLE##SoldQTY SELECTCONVERT(CHAR(7),SODate,120)AS[Date],b.ItemNumber,SUM(Quantity)AS SoldQTY
INTO##SoldQTYFROM Nsls.DBO.NewEgg_SOMXXXX As a WITH(NOLOCK)INNERJOIN NSLS.[dbo].[Newegg_SoTXXXX] B WITH(NOLOCK)ON A.SONumber=B.SONumber
INNERJOIN#Item C WITH(NOLOCK)ON B.ItemNumber=C.ItemNumber
WHERE SODate>=CONVERT(CHAR(07), DATEADD(MONTH,-13,@DataDate),120)+'-01'AND SODate<CONVERT(CHAR(07),@DataDate,120)+'-01'ANDStatus<>'V'GROUPBYCONVERT(CHAR(7),SODate,120),b.ItemNumber
ORDERBYCONVERT(CHAR(7),SODate,120)DECLARE@YearINT=YEAR(@DataDate)DECLARE@SQLVARCHAR(MAX)DECLARE@CountINT=0WHILE(@Count<3)BEGINSET@SQL='INSERT INTO ##SoldQTY
SELECT CONVERT(CHAR(7),SODate,120) AS [Date],A.ItemNumber,SUM(Quantity) AS SoldQTY
FROM NHissls.dbo.SOTXXXX'+CONVERT(CHAR(4),@Year-@Count)+' As a WITH (NOLOCK) INNER JOIN NHissls.dbo.SOMXXXX'+CONVERT(CHAR(4),@Year-@Count)+'
B WITH(NOLOCK)
ON A.SONumber=B.SONumber
INNER JOIN #Item C WITH(NOLOCK)
ON A.ItemNumber=C.ItemNumber
WHERE SODate>=CONVERT(CHAR(07), DATEADD(MONTH, -13, ''#DataDate#''), 120)+''-01''
AND SODate<CONVERT(CHAR(07), ''#DataDate#'',120)+''-01''
AND Status<>''V''
GROUP BY CONVERT(CHAR(7),SODate,120),A.ItemNumber
ORDER BY CONVERT(CHAR(7),SODate,120)
'SET@SQL=REPLACE(@SQL,'#DataDate#',@DataDate)EXEC(@SQL)SET@Count=@Count+1END