Id Name
-------------
1 Joy
2 Moni
3 Evan
4 farhad
Run Code Online (Sandbox Code Playgroud)
Date(y/m/d) Id
-----------------
2015/1/1 1
2015/1/3 1
2015/1/4 1
2015/1/5 1
2015/1/1 2
2015/1/4 2
2015/1/5 2
2015/1/5 3
Run Code Online (Sandbox Code Playgroud)
我需要来自上面两个表的数据,如下所示
Name Date
Joy 2015/1/5, 2015/1/4, 2015/1/3
Moni 2015/1/5, 2015/1/4
Evan 2015/1/5
Run Code Online (Sandbox Code Playgroud)
第1点:我不会约会,2015/1/1因为2015/1/2员工身份'1'的日期缺失日期表中的欢乐
点2:我不会把日期'2015/1/1',因为日期'2015/1/3'和'2015对于日期表中的moni,员工ID"2"缺少/ 1/2
我已经尝试过像这样的问题,这对我的问题很好,但它需要两倍的大数据执行时间.我怎么能以另一种方式做到这一点,以便我将获得最短的执行时间.
select a.Id,a.name , [dbo].[hello] ('2015/1/1','2015/1/5',a.Id) From
Employee a
ALTER FUNCTION [dbo].[hello](@start datetime,@End datetime,@Id int)
returns varchar(1111)
AS
begin
declare
@TempDate DateTime,
@CombainedDate varchar(1111)= '',
while(@End>=@start)
begin
select …Run Code Online (Sandbox Code Playgroud) 使用递归然后循环(for,while,do-while)有什么好处?
使用递归(这里我得到一个给定数字的总和,假设数字是5然后5 + 4 + 3 + 2 + 1:
#include<stdio.h>
int sum(int n);
void main()
{
int sums =0, n;
scanf("%d",&n);
sums = sum(n);
printf("%d",sums);
while (1)
{
}
}
int sum(int n)
{
if (n==1)
return 1;
return n + sum(n-1);
}
Run Code Online (Sandbox Code Playgroud)
没有递归(这里我得到一个给定数字的总和假设数字是5然后5 + 4 + 3 + 2 + 1:
#include<stdio.h>
void main()
{
int sum =0, n;
scanf("%d",&n);
for(int i=n;i>=1;i--)
{
sum = sum + i;
}
printf("%d",sum);
while (1)
{
}
}
Run Code Online (Sandbox Code Playgroud)