为了账号安全,请及时绑定邮箱和手机立即绑定

Report Style

标签:
SQL Server

根据用户自定义需求报表。只有在SQL写好存储过程,然后把结果集显示在GridView中。

报表做出来,用户接收了。有把这个效果分享给一些网友,结果网友都会问回一个问题,这个效果如何实现的。

现在把一部分存储过程代码帖出来,分享一下,其实很简单。

代码

--如果抽检数大于零和比率大于等于零
IF ((@RCount > 0) AND (ISNULL(@Rate,0)>= 0))
BEGIN
    BEGIN
        --定义一个字段变量
        DECLARE @ColumnName NVARCHAR(100)
        --把日期转换为字符串赋值于这个字段变量,如20101202
        SET @ColumnName =  CONVERT(NVARCHAR(100),@BeginDate,112)                      
        --判断表是否存在这个字段,如果没有向这个临时表添加一个
        EXECUTE('IF NOT EXISTS(SELECT name FROM tempdb..syscolumns where id=OBJECT_ID(''tempdb..#TempFqaVisualReportsByDate'') AND tempdb..syscolumns.name ='''+ @ColumnName +''') ALTER TABLE #TempFqaVisualReportsByDate ADD [' + @ColumnName + '] NVARCHAR(100)')
    END
    BEGIN    
        --判断是否有此品种记录存在        
        IF NOT EXISTS (SELECT * FROM #TempFqaVisualReportsByDate WHERE [品种] = @SpeciesName)
        --如果没有,添加一笔
        INSERT INTO #TempFqaVisualReportsByDate([品种]) VALUES (@SpeciesName)    
        --如果已经存在,执行更新SQL语句。值是一个组全成的字符串,如110÷247=44.53%
        EXECUTE('UPDATE #TempFqaVisualReportsByDate SET ['+ @ColumnName +'] = CONVERT(NVARCHAR(50),' + @PassedCount + ') + ''÷'' + CONVERT(NVARCHAR(50),' + @RCount + ') + ''='' + CONVERT(NVARCHAR(80),CONVERT(DECIMAL(18,2),' + @Rate + ' * 100)) + ''%'' WHERE [品种] = '''+ @SpeciesName +'''')
    END
END

 

 

 

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消