gpt4 book ai didi

sql - 表变量和错误 "Must declare the scalar variable"

转载 作者:行者123 更新时间:2023-12-02 15:14:56 26 4
gpt4 key购买 nike

我需要为大约 20 行创建临时表或变量。

DECLARE @UserDailyStatsForCategories TABLE (
CategoryId uniqueidentifier not null,
[Date] date not null,
[Unique users] int not null,
[Returning users] int not null,
[New users] int not null
);

insert into @UserDailyStatsForCategories (CategoryId, [Date], [Unique users], [Returning users], [New users])
select
@CategoryId,
eventdate,
count(*),
count(case when cnt > 1 then 1 end),
count(case when cnt = 1 then 1 end)
from
(
select cast(eventtime as date) as eventdate, userid, count(*) as cnt
from telemetrydata
where [dbo].[TelemetryData].[DiscountId] = @DiscountId
and [dbo].[TelemetryData].[EventName] = 'DiscountClick'
group by cast(eventtime as date), userid
) date_user
group by eventdate;

它有效,但是当我添加这个时:

update CategoryDailyStatsTemp 
set
[CategoryDailyStatsTemp].[Unique users] = @UserDailyStatsForCategories.[Unique users],
[CategoryDailyStatsTemp].[Returning users] = @UserDailyStatsForCategories.[Returning users],
[CategoryDailyStatsTemp].[New users] = @UserDailyStatsForCategories.[New users]
where [CategoryDailyStatsTemp].[Id] = @UserDailyStatsForCategories.CategoryId
and [CategoryDailyStatsTemp].[Date] = @UserDailyStatsForCategories.[Date];

然后我得到了错误:

Msg 137, Level 15, State 2, Line 3 Must declare the scalar variable "@UserDailyStatsForCategories".

这是怎么回事?

最佳答案

正确的语法如下:

Update  C
Set [Unique users] = U.[Unique users],
[Returning users] = U.[Returning users],
[New users] = U.[New users]
From CategoryDailyStatsTemp C
Join @UserDailyStatsForCategories U On U.CategoryId = C.Id
And U.Date = C.Date

关于sql - 表变量和错误 "Must declare the scalar variable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41186900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com