sql-server - SQL Server Management Studio:获取两个日期列之间的数据
问题描述
在注册后的前 6 个月(182 天)内,我需要帮助为每位客户获取销售收入
例子:
我需要为每个客户获取注册日期和 6 个月之间的总销售额。因此,对于客户 A,它将在 2019 年 8 月 3 日到 2020 年 2 月 1 日之间,以此类推。
销售数据的结构为客户、日期、销售额 $
例子:
我认为我需要编写某种循环?客户列表超过 100,000 行。
谢谢!
解决方案
您可以遵循的示例:
SELECT
c.CustomerName,
c.SignUpDate,
DATEADD(day, 182, c.SignUpDate) AS [6MonthDate],
ISNULL(SUM(s.SaleAmount), 0) AS [6MonthSalesTotal]
FROM
Customer c
LEFT OUTER JOIN Sales s
ON s.CustomerID = c.CustomerID
AND s.DateOfSale BETWEEN c.SignUpDate AND DATEADD(day, 182, c.SignUpDate)
GROUP BY c.CustomerName, c.SignUpDate, DATEADD(day, 182, c.SignUpDate);
推荐阅读
- python - 如何从数据框构建网络
- angular - 添加指向 Angular 材质数据表的链接
- python - 使用 c++ 时从二进制文件中读取 int 不正确
- javascript - 在嵌套数组中获取“无法读取属性'x'”
- apache-kafka - 如何在带有商店和处理器 API 的 Kafka Streams 中实现 GDPR 的遗忘权(删除)?
- ios - 帧率问题 Apple SpriteKit
- python - Python Key Error 无法解析字段
- oauth-2.0 - 带有 Swashbuckle 的 Swagger UI 不显示 OAuth2 选项
- python - 如何计算字典列表中键的出现次数
- vba - 在共享驱动器中编译多个 .xls 文件