Как получить данные за неделю на сервере SQL - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть таблица ввода данных (ServiceData) с данными пользователей. К столбцам относятся Userid, BillDate (тип DateTime) и т. Д. Мне нужно получать количество пользователей еженедельно (текущая неделя).

Запрос

select     BillDate
          ,DATENAME(dw,BillDate) as day 
          ,count(BillDate) as total 
from ServiceData 
group by 
BillDate,DATENAME(dw,BillDate) 
order by BillDate desc

это только выборка дня billdate, но я хочу получить количество записей в воскресенье, количество записей в понедельник .... с воскресенья по субботу (текущий выходной) это возможно?

ожидаемый выход

    ID   |   TOTAL  |   DAY
   --------------------------
    1    |    23    |   Sun
    2    |    54    |   Mon
    3    |    17    |   Tues
    4    |    56    |   Thus
    5    |    45    |   Fri
    6    |    78    |   Sat

1 Ответ

0 голосов
/ 18 сентября 2018

Это должно сработать:

SELECT 
  row_number() over (order by (SELECT 1)) ID,
  count(*) Total,
  LEFT(Datename(weekday, Cast(Billdate as date)), 3) Day
FROM 
  ServiceData
WHERE
  BillDate >= dateadd(week, datediff(d, -1, getdate()-2)/7, -1)
GROUP BY
  Cast(Billdate as date)
ORDER BY
  Cast(Billdate as date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...