sql小问题

aaajedll 2010-04-10 01:36:52

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表示,那一行必须存在

...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaajedll 2010-04-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 htl258 的回复:]
SQL code
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_C……
[/Quote]
厉害
htl258_Tony 2010-04-10
  • 打赏
  • 举报
回复
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)
sgtzzc 2010-04-10
  • 打赏
  • 举报
回复
大问题:图片看不到
aaajedll 2010-04-10
  • 打赏
  • 举报
回复

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧