Один запрос SQL Server для получения общей оценки по часам, дням, неделям, месяцам и годам - PullRequest
0 голосов
/ 05 июня 2011

У меня есть следующее требование:

один запрос SQL Server для получения общей оценки по часам, дням, неделям, месяцам и годам.

таков должен быть результат:

thisperiodtotalscore  previousperiodtotalscore  sumtotalscore periodType

, что соответствует следующим критериям:

  • , где результат берется из данных таблицы, итоговое значение должно суммироваться для разных членов разных команд,
  • где период может быть ежечасным, ежедневным, еженедельным, ежемесячным, а также годовым и почасовым, определяется по определению рабочего часа, скажем, это может быть любое количество выбранных часов (например: 1-й рабочий час, 2-й рабочий час и т. Д...)
  • и еженедельно определяется по рабочим дням, скажем, это может быть с среды по среду, ..)
  • , а также для месячных и годовых

Еслипериод имеет пустые данные, скажем, если это выходной / отпуск, этот конкретный период не следует пропускать в счетчике.

Примечание:

thisperiodtotalscore (общий счет за этот период может быть длялюбой из периоds (ежечасно, ежедневно, еженедельно, ежемесячно, ежегодно) для ввода даты пользователя) - укажите соответствующий недельный балл ввода пользователя, соответствующий месячный балл ввода даты пользователя, .. аналогично

previousperiodtotalscore (итоговая оценка за предыдущий период может быть для любого из периодов (ежечасно, ежедневно, еженедельно, ежемесячно, ежегодно) для ввода даты пользователя) - скажем, оценка предыдущей недели для ввода даты пользователя, оценка предыдущего месяца для ввода даты пользователя,.. аналогично

sumtotalscore - всего из thisperiodtotalscore и previousperiodtotalscore

periodType - ежечасно, ежедневно, еженедельно, ежемесячно, ежегодно, в зависимости от типа запроса периода

и соответствует следующим критериям:

  • , где по данным таблицы получены баллы, totalscore необходимо суммировать для разных членов разных команд,
  • где период может быть ежечасным, ежедневным, еженедельным, ежемесячным, а также годовым и почасовым, определяется по определению рабочего часа, скажем, это может быть любое количество выбранных часов (например: 1-й рабочий час, 2-й рабочий час и т. д.)..)
  • и еженедельно определяется по рабочим дням, скажем, что это может быть с среды по среду, ..)
  • , а также для месячных и годовых

Еслипериод содержит пустые данные, например, если это выходной / отпуск, этот конкретный период не следует пропускать при подсчете.

Это требование также приветствуется в других возможных случаях, если оно пропущено в таких сценариях.

Заранее спасибо, GravityPush

1 Ответ

0 голосов
/ 05 июня 2011

Для начала взгляните на DimDate в образце AdventureWorksDW. Вы можете иметь подобную таблицу в вашей базе данных и написать несколько запросов на присоединение. Я предлагаю использовать запросы, которые динамически сгруппированы по разным столбцам DimDate.

...