Прошло много лет с тех пор, как я работал в SQL, поэтому прошу прощения, если это глупый вопрос.
Я работаю с базой данных TFS и пытаюсь составить отчет с запросом по ней, чтобы получить сумму всего поля «OriginalEstimate» для элементов в текущей итерации спринта и вперед.
т.е., если данные были выложены так:
Sprint Name | Original Estimate Total
Sprint #1: | 10
Sprint #2: | 20
Sprint #3: | 30
Sprint #4: | 40
Я хотел бы получить возвращенный набор данных, который выглядит следующим образом:
Sprint Name | Original Estimate Total
Sprint #1: | 90
Sprint #2: | 70
Sprint #3: | 40
Sprint #4: | 0
Во-первых, я даже не знаю, возможно ли вышеизложенное с использованием SQL. Дайте мне знать, если нет. :)
Там, где все начинается с самого начала, я понимаю, как это сделать в структуре таблицы сервера TFS SQL. Я не могу изменить структуру, поэтому любая идея о том, как этого добиться, очень ценится.
Если вы не знакомы с разметкой базы данных TFS, вот краткая сводка таблиц, которая вычеркнута и переименована, чтобы облегчить поиск:
(Table) Iteration
-----------------
IterationName
IterationGuid
(Table) WorkItem
----------------
ID
Name
IterationGUID // Relates to Iteration table, above
StartDate
OriginalEstimate // The field I care about, only valid on 'Task' in our case.
WorkItemType // Used to distinguish the type, for our purposes assume only 'Task' and 'Sprint' exist
Краткое описание:
«WorkItem» в TFS - это все, начиная с заданий, задач и заканчивая «спринтами». «Спринт» - это просто запись, которая содержит StartDate и EndDate для учета начала / конца вашего спринта, а также ссылки на итерацию, что будут выполнять все задачи.
Итак, мне нужны данные, упомянутые выше, сгруппированные по «имени» спринта, упорядоченному по «начальной дате спринта», то есть к сумме всех спринтов впереди.
И здесь я хочу выбить мозги.
Если это возможно, и мне просто нужно больше читать, пожалуйста, дайте мне знать, что искать. Кажется, я не могу сделать это с помощью подзапросов, но, возможно, я просто не правильно их использую.
Спасибо!