sql-server - 用记录计算一年中的天数

标签 sql-server

我有一个名为 的 SQL Server 表AgentLog 我在其中为每个代理存储他的每日销售额。

+-----------+------------+-------------+
| AgentName |    Date    | SalesNumber |
+-----------+------------+-------------+
| John      | 01.01.2014 |          45 |
| Terry     | 01.01.2014 |          30 |
| John      | 02.01.2014 |          20 |
| Terry     | 02.01.2014 |          15 |
| Terry     | 03.01.2014 |          52 |
| Terry     | 04.01.2014 |          24 |
| Terry     | 05.01.2014 |          12 |
| Terry     | 06.01.2014 |          10 |
| Terry     | 07.01.2014 |          23 |
| John      | 08.01.2014 |          48 |
| Terry     | 08.01.2014 |          35 |
| John      | 09.01.2014 |          37 |
| Terry     | 10.01.2014 |          35 |
+-----------+------------+-------------+

如果代理在某一特定日期不工作,则不会有他在该日期的销售记录。

我想在给定的日期间隔(例如:01.01.2014 - 10.01.2014)上生成一个报告(查询),它计算代理没有上类的天数(例如:John - 6 天),在work (John - 4 days) 并返回它不存在的日期间隔(例如:John 03.01.2014 - 07.01.2014, 10.01.2014)(可以有多个间隔)。

最佳答案

您需要创建一个自定义表格,并为您想要的范围内的每个日期填充一条记录(您可以根据自己的需要随意追溯过去和 future 。)。您可以非常轻松地在 Excel 中执行此操作并将其导入。

Select *
from Custom.DateListTable dlt
left outer join agentlog ag
on dlt.Date = ag.Date

关于sql-server - 用记录计算一年中的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27491723/

相关文章:

mysql - 当日期为空时,SQL 查询中的 Where 子句跳过日期过滤器

sql-server - 糟糕的 SQL 读取性能(罪魁祸首更新统计数据?)

sql - 递归 SQL (CTE) 性能低下

sql-server - SQL Server比较两个小数位不正确

sql-server - 数据库设计 - 最佳实践 - 一个用于 Web 表单下拉选项的表格或用于每个下拉选项的单独表格

sql-server - SQL 中的日期范围交集拆分

SQL Server 正在尝试使用两个路径作为备份位置

sql - 在 SQL 中动态创建临时表

sql - 如何使用 Cube、Pivo​​t 或 Rollup SQL 转换列中的行

sql-server - 为什么我们需要CDC或CT才能在SQL Server 2016中要求时态表?