вложенный оператор выбора с суммой - PullRequest
2 голосов
/ 27 марта 2012

Хотелось бы узнать, возможно ли написать вложенный выбранный устав?

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

SELECT description, SUM(ts.booked_time) AS booked_time_total, 
CONVERT(VARCHAR(11), @testDate, 106) AS month_name, @week_ref AS week_ref
FROM timesheets ts

WHERE @testDate <= convert(datetime, end_dtm, 120) and 
      dateadd(wk, 1, @testDate) > convert(datetime, start_dtm, 120)

Но забронированное время кажетсянеправильно.Разве сумма не должна вычислять сумму для каждой строки, которая находится в пределах start_dtm и end_dtm.Поэтому, если у меня есть 10 строк с 1 зарезервированным временем, можно ожидать, что сумма будет равна 10.

тестовые данные:

enter image description here

Ответы [ 2 ]

4 голосов
/ 27 марта 2012

SUM вычисляет общее значение полей, а COUNT - общее количество записей.

SELECT description, 
       COUNT(ts.booked_time) AS booked_time_total, 
       CONVERT(VARCHAR(11), @testDate, 106) AS month_name, 
       @week_ref AS week_ref
FROM timesheets ts
WHERE @testDate <= convert(datetime, end_dtm, 120) and 
      dateadd(wk, 1, @testDate) > convert(datetime, start_dtm, 120)
3 голосов
/ 27 марта 2012

Я думаю, что вы хотите использовать COUNT, а не SUM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...