0
我在這裏有一些在子句中插入多個日期的問題。在「IN」子句中有多個日期的樞軸
這是我通過互聯網研究所看到的代碼。
;with cte (datelist, maxdate) as
(
select min(arrivaldate) datelist, max(departuredate) maxdate
from BookingsPerPerson
union all
select dateadd(dd, 1, datelist), maxdate
from cte
where datelist < maxdate
)
select c.datelist
into #tempDates
from cte c
select *
from
(
select b.person_id, b.arrivaldate, b.departuredate,
d.datelist,
convert(CHAR(10), datelist, 120) PivotDate
from #tempDates d
left join BookingsPerPerson b
on d.datelist between b.arrivaldate and b.departuredate
) x
pivot
(
count(datelist)
for PivotDate in ([2012-01-01], [2012-01-02], [2012-01-03],
[2012-01-04], [2012-01-05], [2012-01-06] , [2012-01-07])
) p;
由於代碼被手動添加IN子句
pivot
(
count(datelist)
for PivotDate in ([2012-01-01], [2012-01-02], [2012-01-03],
[2012-01-04], [2012-01-05], [2012-01-06] , [2012-01-07])
) p;
內的日期是否可以只使用這是提取的日期/由此代碼
;with cte (datelist, maxdate) as
(
select min(arrivaldate) datelist, max(departuredate) maxdate
from BookingsPerPerson
union all
select dateadd(dd, 1, datelist), maxdate
from cte
where datelist < maxdate
)
select c.datelist
into #tempDates
from cte c
分裂
並在「IN」子句中使用SELECT語句樞軸聲明?
是否這樣?
pivot
(
count(datelist)
for PivotDate in (select c.datelist from #tempDates)
) p;
我試過這個,但它給我一個錯誤?
有沒有什麼辦法可以將 中的多個日期添加到臨時表中,並將其包含在IN條款中?
你可以在這裏試試吧:http://sqlfiddle.com/#!3/8857c/9