Таблица tblWeeks имеет номер недели и дату столбца (только каждый четверг). Вот так:
WeekNum Date
1496 2015-7-2
1497 2015-7-9
1498 2015-7-16
Функция fnBenchmarkData будет возвращать данные за неделю на основе указанного параметра weeknum.
Я использовал cross-apply для отображения контрольных данных за ВСЕ недели:
SELECT p.weeknum, p.date, q.Key, q.ID, q.Score
FROM tblWeeks AS p
cross apply
fnBenchmarkData(p.weeknum) as q
Теперь моя проблема заключается в том, что данные о счете, генерируемые функцией, и номер недели будут обновляться каждый четверг и оставаться неизменными до следующей среды, т. е. четверг — следующая среда является «циклом», и все данные о счете одинаковы, номер недели у меня так же. Однако функция вернется только в четверг.
Перекрестное применение будет отображать данные только каждый четверг, я хочу отображать остальные дни недели, в основном дублируя строки, но изменяя дату.
Например, ниже показано, что я получаю от cross-apply:
WeekNum Date Score
1496 2015-7-2 (Thur) 1
1497 2015-7-9 (Thur) 5
1498 2015-7-16(Thur) 7
....
Я хочу, чтобы мой перекрестный SQL возвращал что-то вроде этого:
WeekNum Date Score
1496 2015-7-2 (Thur) 1
1496 2015-7-3 1
/* No data stored for weekend
1496 2015-7-6 1
1496 2015-7-7 1
1496 2015-7-8 1
1497 2015-7-9 (Thur) 5
1497 2015-7-10 5
1497 2015-7-13 5
1497 2015-7-14 5
1497 2015-7-15 5
1498 2015-7-16(Thur) 7
Кто-нибудь знает, как это сделать? Огромное спасибо!
cross join (VALUES(0),(1),(2),(3),(4),(5),(6),(7)) n(n);
08.07.2015SQL Server 2008
, не так ли? 08.07.2015