У меня есть запрос в sql, который я написал на С#. Что делает запрос, вычисляя что-то вроде того, есть ли у меня ввод даты двух столбцов и нет. шаров как
Date No. of balls
21/11/2013 2
22/11/2013 3
23/11/2013 4
24/11/2013 5
25/11/2013 2
26/11/2013 5
27/11/2013 4
28/11/2013 3
29/11/2013 9
30/11/2013 8
01/12/2013 7
02/12/2013 4
03/12/2013 5
04/12/2013 6
05/12/2013 2
06/12/2013 0
07/12/2013 1
вывод должен выглядеть так
newdate no. of balls
21/11/2013 -27/11/2013 25
28/11/2013-04/12/2013 42
05/12/2013-07/12/2013 3
то есть дата находится в интервале 7 дней, например, с 21/11/2013 по 27/11/2013, затем следующие 7 28/11/2013-04/12/2013 и т. д., но она должна рассматривать дату окончания только как дату окончания базы данных (как показано в 3-м ряду). я хочу создать функцию в sql, используя функцию create functionname (например, имя функции в качестве интервала), которая должна возвращать столбец даты вывода, чтобы я мог использовать эту функцию (dbo.interval) в моем запросе sql, написанном на С# как
string query = @" select dbo.interval([Date]) newdate,
IsNull(ROUND(sum(No. of balls),2),0) [no. of balls]
from stock
Where date between Convert(Datetime,'" + Fromdate + "',103) and Convert(Datetime,'" + Todate + "',103)
Group By dbo.interval([date])";
PS: запас представляет собой таблицу из двух столбцов дата и №. шаров и + Fromdate + и + Todate + отображаются в раскрывающемся списке в сетке. Это в основном верхний и нижний пределы дат, предоставленные пользователем, чтобы узнать информацию между этими двумя датами (в этом случае даты для верхнего и нижнего пределов 21.11.2013 и 07.12.2013 соответственно). Поэтому выходной файл будет выглядеть так:
новая дата нет. шаров 21.11.2013 -27.11.2013 25 28.11.2013-04.12.2013 42 05.12.2013-07.12.2013 3
я пытался использовать RecursiveCTE в sql, но это не очень помогает, так как дает только временный результат.
7
дней с наименьшей даты в таблицеStock
или с дня недели? Пример:Mon-Sun
. - person Shiva   schedule 23.10.2014