我这里有个问题,就是一开始这样执行SQL:
declare @dataname datetime
declare @lastday datetime
select top 1 @dataname = dbo.daily.Date from dbo.daily order by Date desc
select @lastday = convert(char(10),dateadd(day,-1,@dataname),120)
create view last as select * from dbo.daily where dbo.daily.Date=@lastday
但是报错说:CREATE VIEW' 必须是批查询中的第一条语句然后我写成函数来执行:
create function fun(@dataname datetime,@lastday datetime)
returns table
as
begin
select top 1 @dataname = dbo.daily.Date from dbo.daily order by Date desc
return( select @lastday = convert(char(10),dateadd(day,-1,@dataname),120))
end
go
但还是编译不过去.
我这里传了两次参数,请问各位高手这种创建视图的语句应该怎么写啊?
declare @dataname datetime
declare @lastday datetime
select top 1 @dataname = dbo.daily.Date from dbo.daily order by Date desc
select @lastday = convert(char(10),dateadd(day,-1,@dataname),120)
create view last as select * from dbo.daily where dbo.daily.Date=@lastday
但是报错说:CREATE VIEW' 必须是批查询中的第一条语句然后我写成函数来执行:
create function fun(@dataname datetime,@lastday datetime)
returns table
as
begin
select top 1 @dataname = dbo.daily.Date from dbo.daily order by Date desc
return( select @lastday = convert(char(10),dateadd(day,-1,@dataname),120))
end
go
但还是编译不过去.
我这里传了两次参数,请问各位高手这种创建视图的语句应该怎么写啊?
returns datetime
as
begin
select top 1 @dataname = dbo.daily.Date from dbo.daily order by Date desc
return( select convert(char(10),dateadd(day,-1,@dataname),120))
end
go
create proc fun
as
begin
declare @dataname datetime
declare @lastday datetime
select top 1 @dataname = dbo.daily.Date from dbo.daily order by Date desc
select @lastday = convert(char(10),dateadd(day,-1,@dataname),120)
select * from dbo.daily where dbo.daily.Date=@lastday
end
其实我的目的就是想在dbo.daily里面取出dbo.daily.Date里倒数第二近的日期来,也就是最近一天的前一天的数据来,但是用函数我刚刚发现不行,因为参数不好提供.
存储过程我还没试,等下...
declare @lastday datetime
select top 1 @dataname = dbo.daily.Date from dbo.daily order by Date desc
select @lastday = convert(char(10),dateadd(day,-1,@dataname),120)
gocreate view last as select * from dbo.daily where dbo.daily.Date=@lastday
必须声明变量 '@lastday'。
必须声明变量 '@lastday'。