【问题标题】:how to get day wise data of this week in sql server如何在sql server中获取本周的每日数据
【发布时间】:2018-09-18 08:13:46
【问题描述】:

我有包含用户数据的数据条目表(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

这只是获取账单日期的日期,但我想获取周日进入的计数,周一进入的计数......从周日到周六(当前周)这可能吗?

预期输出

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

【问题讨论】:

  • 您只向我们展示了预期的输出。样本输入怎么样?
  • 欢迎来到 StackOverflow!您能否请edit您的问题并添加更多信息。您能否向我们提供一些表ServiceData 的样本数据。也请告诉我们您自己已经尝试过的查询。

标签: sql sql-server database


【解决方案1】:

这应该可以解决问题:

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)

【讨论】:

  • 非常感谢您的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多