CREATE FUNCTION ReturnNum(@BeginData varchar(10),@EndData varchar(10))
RETURNS
@RESULT TABLE
{
             序号             smallint
     单位名称           varchar(32),
     稿件总数           int
}
As 
BEGIN
declare @Num           intselect @Num = Count(上传单位) from 宣传稿件 where Dept=1 and @BeginData<=时间<@EndData
insert INTO @Result(序号,单位名称,稿件总数) values(1,'政工办'@Num)select @Num = Count(上传单位) from 宣传稿件 where  Dept =2 and @BeginData<=时间<@EndData
INSERT INTO @Result(序号,单位名称,稿件总数) values(2,'工会',@Num)
select @Num = Count(上传单位) from 宣传稿件 where  Dept =3 and @BeginData<=时间<@EndData
INSERT INTO @Result(序号,单位名称,稿件总数) values(3,'共青团',@Num)
....................
select @Num = Count(上传单位) from 宣传稿件 where  Dept =14 and @BeginData<=时间<@EndData
INSERT INTO @Result(序号,单位名称,稿件总数) values(14,'培训队',@Num)
RETURN
END

解决方案 »

  1.   


     还是不对呢?就是因为insert要小写吗???在执行时,还是出现:
    [Microsoft][ODBC SQL Server Driver]Syntax error or access violation
      

  2.   

    CREATE FUNCTION ReturnNum(@BeginData varchar(10),@EndData varchar(10))
    RETURNS
    @RESULT TABLE
    (
                 序号             smallint,
         单位名称           varchar(32),
         稿件总数           int
    )
    As 
    BEGIN
    declare @Num           intselect @Num = Count(上传单位) from 宣传稿件 where Dept=1 and @BeginData<=时间 and 时间<@EndDatainsert INTO @Result(序号,单位名称,稿件总数) values(1,'政工办',@Num)select @Num = Count(上传单位) from 宣传稿件 where  Dept =2 and @BeginData<=时间 and 时间<@EndData
    INSERT INTO @Result(序号,单位名称,稿件总数) values(2,'工会',@Num)
    select @Num = Count(上传单位) from 宣传稿件 where  Dept =3 and @BeginData<=时间 and 时间<@EndData
    INSERT INTO @Result(序号,单位名称,稿件总数) values(3,'共青团',@Num)
    --....................
    select @Num = Count(上传单位) from 宣传稿件 where  Dept =14 and @BeginData<=时间 and 时间<@EndData
    INSERT INTO @Result(序号,单位名称,稿件总数) values(14,'培训队',@Num)
    RETURN
    END
      

  3.   

    insert INTO @Result(序号,单位名称,稿件总数) values(1,'政工办',@Num)
                ******************************
    有这种用法的吗?@result能够作为表对象直接进入语句吗?
      

  4.   

    可以的,以前这样用过呀.
    可是,这次就是不行了.Count(..)原来用的Max(..)都是可以的,不知道现在是什么问题,不行呢?
      

  5.   

    count(*)吧?没见过对单个字段用count的