临时表 #temp 什么结构阿? 你得定义它.. 像下面的:CREATE PROCEDURE upGetOrderSuccessCountInMonth ( @TransDate datetime , @DayCountInMonth int ) AS declare @i int set @i=0
CREATE TABLE #TempTable ( Counts int NULL, --成功笔数 AmountSum int NULL --成功金额 ) WHILE @i<@DayCountInMonth BEGIN INSERT INTO #TempTable(Counts, AmountSum) SELECT COUNT(EpayClientOrderAmount) AS TransCount, SUM(CONVERT(int, EpayClientOrderAmount)) AS TransAmount FROM epayClientOrders WHERE TransStatus='Y' AND CONVERT(char(8), epayClientOrders.EpayOrderDateTime, 112) >= CONVERT(char(8), dateadd(day, @i, @TransDate), 112) AND CONVERT(char(8), epayClientOrders.EpayOrderDateTime, 112) < CONVERT(char(8), dateadd(day, @i+1, @TransDate), 112) set @i=@i+1 END SELECT Counts, AmountSum FROM #TempTable GO
我的临时表不是好象你这个直接生成的,是通过变量动态生成。@str='select 字段 into #temp from 表1,表2 where 条件'最后用 execute @str 或是 select @str 来输出的。所以在 ASP 页面里输出的时候,系统显示对象已经关闭,禁止使用!
还是不行!不过在我本机测试,用 asp.net 来显示就没问题,用 asp 显示就出现问题。因为服务器上只能运行 asp,所以别劝我干脆用 asp.net
cmdSQL.CommandType=4
set myrs=cmdSQL.executemyrs(0)竟然输出的是 SQL 语句!
像下面的:CREATE PROCEDURE upGetOrderSuccessCountInMonth
(
@TransDate datetime ,
@DayCountInMonth int
)
AS declare @i int
set @i=0
CREATE TABLE #TempTable
(
Counts int NULL, --成功笔数
AmountSum int NULL --成功金额
) WHILE @i<@DayCountInMonth
BEGIN
INSERT INTO #TempTable(Counts, AmountSum)
SELECT COUNT(EpayClientOrderAmount) AS TransCount,
SUM(CONVERT(int, EpayClientOrderAmount)) AS TransAmount
FROM epayClientOrders
WHERE TransStatus='Y'
AND CONVERT(char(8), epayClientOrders.EpayOrderDateTime, 112)
>= CONVERT(char(8), dateadd(day, @i, @TransDate), 112)
AND CONVERT(char(8), epayClientOrders.EpayOrderDateTime, 112)
< CONVERT(char(8), dateadd(day, @i+1, @TransDate), 112) set @i=@i+1
END SELECT Counts, AmountSum FROM #TempTable
GO