sql - TSQL - 如何确定给定周数的一周的第一天和最后一天
问题描述
我有以下格式的数据:
TrDate:2018-01-01 00:00:00.000 | Amount: 10.00
TrDate:2018-01-02 00:00:00.000 | Amount: 20.00
我想在每周级别合并数据:
Week:1 | Start Date: | End Date:| Total Amount
我有查询每周合并数据,但我不知道如何获取相应周的开始日期和结束日期。这是我的查询:
SELECT DATEPART(wk, trdate) weekno,
round(SUM(amount),2) AS total_amount
FROM <table>
GROUP BY DATEPART(wk, trdate);
仅供参考:一周从周日开始,到周六结束。
解决方案
尝试这个:
select weekno, weekStart, weekEnd, round(SUM(amount),2) AS total_amount from
(
SELECT
DATEPART(wk, trdate) weekno,
DATEADD(dd, -(DATEPART(dw, trdate)-1), trdate) [WeekStart],
DATEADD(dd, 7-(DATEPART(dw, trdate)), trdate) [WeekEnd],
amount
from table1
)t
group by Weekno, weekstart, weekend
推荐阅读
- python - windows 7、python 3.7 (anaconda)、mayavi、vtk:无法导入 mlab
- ios - 如何防止 SharkORM 中的重复条目
- flutter - 如何显示下一页视图的一部分?
- php - 功能仅适用于第一个按钮。拉拉维尔 7
- apache-spark - spark 2.4 如何安装考拉?
- azure - Grafana / Azure Monitor - 多维过滤
- c# - C#屏蔽或隐藏或删除或编辑pdf文件中的某些区域
- html - 在 laravel 中出现 Http 500 错误
- html - 如何在整个html页面上给出相等的间距
- python - std::endl,在 Python 中是否有等价物?(返回+冲洗)