0

特定のパラメーター From および To Date を使用して cte をループしようとしていました。cteを使用してこの create while ループを読み、クエリで試してみましたが、結果には開始日と次の日付のみが表示されます。

DECLARE @fromdate datetime
DECLARE @todate datetime
SET @fromdate='2013-07-23'
SET @todate='2013-07-24'

;with dates(num) as (
  select @fromdate as fromdate
  union all
  select @fromdate + 1
  from dates
  where dates.num < @todate      
 ),
    T(employee_id,actualogin,actuallogout) as (
     select d.*
     from dates cross apply
     dbo.ufn_GET_ATTENDANCE(dates.num) d
 )
 SELECT * FROM T
 OPTION (MAXRECURSION 0)
4

1 に答える 1

1

最初に日付のリストを取得してから、関数を適用する傾向があります。

with dates as (
      select @fromdate as date
      union all
      select date + 1
      from dates
      where dates.date < @todate
    ),
    T(employee_id,actualogin,actuallogout) as (
     select t.*
     from dates cross apply
          dbo.ufn_GET_ATTENDANCE(dates.date)
    )
于 2013-07-26T01:44:14.073 に答える