【发布时间】:2015-08-08 01:43:29
【问题描述】:
我需要使用两个参数构建一个表值用户定义函数
输入select * from func_1('01/01/2012','09/09/2015');
输出应该是这样的:
month quator semi_annual annual
1 1 1 2012
2 1 1 2012
3 1 1 2012
4 2 1 2012
5 2 1 2012
6 2 1 2012
7 3 2 2012
. . . ...
. . . ....
upto
9 3 2 2015
为此我需要一个表值函数。
我试过这样的代码
create function func3_D_D
(@startDate date, @endDate date)
RETURNS @dates table
(months int,quatorly int,Semi_anuual int,Annual int)
As
Begin
declare
@months int,
@quatorly int,
@Semi_anuual int,
@Annual int;
select @months= DATEDIFF(MONTH, @startDate, @endDate);
select @quatorly= DATEDIFF(QUARTER, @startDate, @endDate);
select @Semi_anuual= DATEDIFF(QUARTER, @startDate, @endDate)/ 2;
select @Annual= DATEDIFF(YEAR, @startDate, @endDate);
WHILE (@endDate > @startDate)
begin
insert into @dates
select @months,@quatorly,@Semi_anuual,@Annual;
End;
return;
End;
【问题讨论】:
-
您到底尝试了什么? SO 不是代码生成工厂。
-
这看起来更像是在给我们设置任务而不是问问题。你需要什么帮助?通过帮助,我的意思是我们如何帮助您使用当前尝试过的代码以及您将要更新您的问题的代码?
-
我提到了我尝试过的代码,我只能看到月、季、半年和年的计数差异,但我需要像上面提到的那样呈现表格。跨度>
标签: sql sql-server sql-server-2008