CREATE PROCEDURE sp_auto_print
@BeginDateTime datetime
AS
Begindeclare @isnull varchar(2)set @isnull = '--'SELECT 
  ISNULL(convert(varchar,convert(decimal(20,2),avg(case when a.NumberNO=33 then a.AverageValue else null end))),@isnull) as PH,
  ISNULL(convert(varchar,convert(decimal(20,2),avg(case when a.NumberNO=31 then a.AverageValue else null end))),@isnull) as TOC,
  ISNULL(convert(varchar,convert(decimal(20,2),sum(case when a.NumberNO=31 then a.GrossFlow else null end))),@isnull) as TOC_Flow,
  ISNULL(convert(varchar,convert(decimal(20,2),avg(case when a.NumberNO=32 then a.AverageValue else null end))),@isnull) as COD,
  ISNULL(convert(varchar,convert(decimal(20,2),sum(case when a.NumberNO=32 then a.GrossFlow else null end))),@isnull) as COD_Flow,
  ISNULL(convert(varchar,convert(decimal(20,2),avg(case when a.NumberNO=35 then a.AverageValue else null end))),@isnull) as [NH4-N],
  ISNULL(convert(varchar,convert(decimal(20,2),sum(case when a.NumberNO=35 then a.GrossFlow else null end))),@isnull) as [NH4-N_Flow],
  ISNULL(convert(varchar,convert(decimal(20,2),sum(case when a.NumberNO=34 then a.AverageValue else null end))),@isnull) as Flow
  FROM T_DataInfo_AverageHour a where DayID >= @BeginDateTimeEnd

解决方案 »

  1.   

    为什么一定要存储过程呢,我看一个SQL语句就行了嘛SELECT 
      nvl(to_char(avg(case when a.NumberNO=33 then a.AverageValue else null end),'999.99'),'--') as PH,                                                 
      nvl(to_char(avg(case when a.NumberNO=31 then a.AverageValue else null end),'999.99'),'--') as TOC,
      nvl(to_char(sum(case when a.NumberNO=31 then a.GrossFlow else null end),'999.99'),'--') as TOC_Flow,
      nvl(to_char(avg(case when a.NumberNO=32 then a.AverageValue else null end),'999.99'),'--') as COD,
      nvl(to_char(sum(case when a.NumberNO=32 then a.GrossFlow else null end),'999.99'),'--') as COD_Flow,
      nvl(to_char(avg(case when a.NumberNO=35 then a.AverageValue else null end),'999.99'),'--') as "NH4-N",
      nvl(to_char(sum(case when a.NumberNO=35 then a.GrossFlow else null end),'999.99'),'--') as "NH4-N_Flow",
      nvl(to_char(sum(case when a.NumberNO=34 then a.AverageValue else null end),'999.99'),'--') as Flow
      FROM T_DataInfo_AverageHour a where DayID >= :BeginDateTime
      

  2.   

    软件里面都已经写好了用存储过程,软件要保证在sql  server和orcel中都可以用。