DECLARE @STARTYEAR  VARCHAR(50) ,@STARTMONTH VARCHAR(50),
@ENDYEAR VARCHAR(50),@ENDMONTH VARCHAR(50),@ZYKJ VARCHAR(50),@CYKJ VARCHAR(50)DECLARE @YJ VARCHAR(1000)
   SET @YJ=' SELECT SDID,ROW_NUMBER() OVER (ORDER BY GYZCZ) AS PM ,YEAR,MONTH, GYZCZ,
   (SELECT GYZCZ from [T_Data] where YEAR=T.Year-1 AND MONTH=T.Month AND SDID=T.SDID) AS QNGYZCZ,
   (GYZCZ-(SELECT GYZCZ from [T_Data] where YEAR=T.Year-1 AND MONTH=T.Month AND SDID=T.SDID)) AS ZL, 
   ((GYZCZ-(SELECT GYZCZ from [T_Data] where YEAR=T.Year-1 AND MONTH=T.Month AND SDID=T.SDID))/(SELECT GYZCZ from    [T_Data] where YEAR=T.Year-1 AND MONTH=T.Month AND SDID=T.SDID)) AS ZF INTO 
   #TABLE1 FROM T_Data AS T WHERE YEAR>='+@STARTYEAR+' AND YEAR <='+@ENDYEAR+'  AND MONTH>='+@STARTMONTH+' AND    MONTH<='+@ENDMONTH+' AND PDID='+@ZYKJ+' AND SDID IN ('''+@CYKJ+''') ORDER BY MONTH,SDID'
   EXEC (@YJ)
   DECLARE @YJ2 VARCHAR(2000)
   SET @YJ2='SELECT * FROM #TABLE1'
   EXEC (@YJ2)
那里写错了啊?

解决方案 »

  1.   

    报错为:对数据集报错失败,对象名#table1 无效
      

  2.   

    很严重错误
    select子查询返回都是表,你當作字段使用了
      

  3.   

    还有select * into #t from … 与 Insert into #t select …2种语法都没搞清楚
      

  4.   


       SELECT SDID,ROW_NUMBER() OVER (ORDER BY GYZCZ) AS PM ,YEAR,MONTH, GYZCZ,
       (SELECT GYZCZ from [T_Data] where YEAR=T.Year-1 AND MONTH=T.Month AND SDID=T.SDID) AS QNGYZCZ,
       (GYZCZ-(SELECT GYZCZ from [T_Data] where YEAR=T.Year-1 AND MONTH=T.Month AND SDID=T.SDID)) AS ZL, 
       ((GYZCZ-(SELECT GYZCZ from [T_Data] where YEAR=T.Year-1 AND MONTH=T.Month AND SDID=T.SDID))/(SELECT GYZCZ from    [T_Data] where YEAR=T.Year-1 AND MONTH=T.Month AND SDID=T.SDID)) AS ZF INTO 
       #TABLE1 FROM T_Data AS T WHERE YEAR>=@STARTYEAR AND YEAR <=@ENDYEAR  AND MONTH>=@STARTMONTH AND    MONTH<=@ENDMONTH AND PDID=@ZYKJ AND SDID IN (''+@CYKJ+'') ORDER BY MONTH,SDID
    我这样写的话,这里这样对吗?SDID IN (''+@CYKJ+'') ORDER 
      

  5.   

    我要问的是这句话该怎么写我这样写的话,这里这样对吗?SDID IN (''+@CYKJ+'')
      

  6.   


    并不是说这个,而是所有的SELECT GYZCZ ... 返回都是表,你當作字段使用
      

  7.   

    可是我这里能查出来
    我上面建立了一个#table1
      

  8.   

    @CYKJ这里传的是什么?  要是条件结构转化成(... or ...or..........)肯定是没问题的。
      

  9.   

    @CYKJ =(SDID = A OR SDID = B OR ...)