34,590
社区成员
发帖
与我相关
我的任务
分享
DECLARE @SQL NVARCHAR(4000)
SET @SQL='SELECT ISNULL([iID],'''') [类别],'
SELECT @SQL=@SQL+' SUM(CASE WHEN [Date]='''+[Date]+''' THEN [st] ELSE 0 END) ['+[Date]+'],' FROM (SELECT DISTINCT [Date] FROM #T_Convert_Year)T_Date
SET @SQL=LEFT(@SQL,LEN(@SQL)-1)+' FROM #T_Convert_Year GROUP BY [iID] ORDER BY [iID]'
EXEC(@SQL)
类别其实是有3个-1,0,1,但是-1的数据没有,所以就没显示,怎么+一个-1进去,有的时候0数据没有也是没的
我想要的功能就是不管数据有没有,如果没有,具体的值可以用0表示,那一行必须存在
DECLARE @SQL NVARCHAR(4000)
SET @SQL='SELECT b.iID [类别],'
SELECT @SQL=@SQL+' SUM(CASE WHEN [Date]='''+[Date]+''' THEN [st] ELSE 0 END) ['+[Date]+'],' FROM (SELECT DISTINCT [Date] FROM #T_Convert_Year)T_Date
SET @SQL=LEFT(@SQL,LEN(@SQL)-1)+' FROM #T_Convert_Year a right join (select 1 as iID union select 0 union select -1) b on a.iID=b.iID GROUP BY b.[iID] ORDER BY b.[iID]'
EXEC(@SQL)