USE [text] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[getHcrStat1580] @wherestr varchar(200), @123 tinyint AS BEGIN SET NOCOUNT ON; DECLARE @class varchar(200),@grpstr varchar(50),@sql nvarchar(1200),@colstr varchar(400),@table varchar(20) set @table='[NGtbhcr1580]' set @class='class=case class when ''甲'' then ''甲班'' when ''乙'' then ''乙班'' when ''丙'' then ''丙班'' when ''丁'' then ''丁班'' else '''' end' if @123=0 begin set @colstr='rq=YMD,FUR_NO,'+@class set @grpstr=' group by YMD,FUR_NO,class' end else if @123=1 begin set @colstr='rq=YM,FUR_NO,'+@class set @grpstr=' group by YM,FUR_NO,class with rollup' end else if @123=2 begin set @colstr='rq=YY,FUR_NO,'+@class set @grpstr=' group by YY,FUR_NO,class with rollup' end set @sql='select '+@colstr+', tll=convert(numeric(14,2),sum(tll)), rzl350=convert(numeric(8,2),sum(rz350t)/sum(tll)*100), rzl450=convert(numeric(8,2),sum(rz450t)/sum(tll)*100), rzl600=convert(numeric(8,2),sum(rz600t)/sum(tll)*100), RZPJT=convert(numeric(8,2),sum(RZPJT)/nullif(sum(rznum),0)), JPL=convert(numeric(8,2),sum(JPL)/sum(tll)*100), FGL=convert(numeric(8,2),avg(FGL)), jtmp=convert(numeric(8,2),avg(jtmp)), N230=convert(numeric(8,2),avg(N230)) from '+@table+' where YMD between '+@wherestr+@grpstr exec sp_executesql @sql,N'@colstr varchar(400)',@colstr end
时间: 2023-05-14 09:07:04 浏览: 56
这是一个 SQL 存储过程,用于从表 [NGtbhcr1580] 中获取数据。根据传入的参数 @wherestr 和 @123,可以按照不同的时间粒度和分组方式进行聚合计算。具体的计算包括总产量 tll、350、450、600 等三个品种的入柜率 rzl、平均入柜票价 RZPJT、机台利用率 JPL、废品率 FGL、加热温度 jtmp 和 N230 等指标。
相关问题
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON 这段代码是什么意思
这段代码是 Transact-SQL 语言中的设置命令,用于设置数据库连接的 ANSI_NULLS 和 QUOTED_IDENTIFIER 属性。
- SET ANSI_NULLS ON 表示在查询中启用 ANSI_NULLS 设置,即对于任何比较操作中具有 NULL 值的情况,结果都是未知的。
- SET QUOTED_IDENTIFIER ON 表示在查询中启用标识符引用设置,即使用双引号来引用标识符,而不是使用单引号。
这些设置可以影响 Transact-SQL 语句的解析和执行方式,因此在编写存储过程和触发器等数据库对象时,建议设置这些属性以确保一致的行为。
SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON解释这段代码
这段代码是SQL Server中的T-SQL语句,用于设置数据库会话的选项。
- SET QUOTED_IDENTIFIER ON:指示在执行 Transact-SQL 语句时,将使用 ANSI(ISO)设置来处理引用标识符。
- SET ARITHABORT ON:指示在发生运算错误时回滚整个事务。
- SET NUMERIC_ROUNDABORT OFF:指示在处理数值计算时,不对结果进行四舍五入。
- SET CONCAT_NULL_YIELDS_NULL ON:指示在连接操作中,如果任一表达式为 NULL,则结果为 NULL。
- SET ANSI_NULLS ON:指示在处理 NULL 值时,使用 ANSI(ISO)默认设置。
- SET ANSI_PADDING ON:指示在存储字符和二进制数据时,使用 ANSI(ISO)默认设置来填充。
- SET ANSI_WARNINGS ON:指示在出现警告时,向客户端返回一个消息。