【发布时间】:2018-04-18 18:06:50
【问题描述】:
我无法解决这个问题,因为 4/13-4/15 的数据缺失。见截图:Daily Subscriber Counts
此截图由以下代码[编辑:部分]生成:
SELECT
MIN([AsOfDate]) AS StartDate,
MAX([AsOfDate]) AS EndDate,
SUM([TotalCustomers]) AS TotalSubs,
SUM([HSDCustomers]) AS HSDSubs,
SUM([PhoneCustomers]) AS PhoneSubs,
SUM([VideoCustomers]) AS VideoSubs
FROM
[vDailyCustomerCounts]
WHERE
Sourcesystem = 'ICOMS'
AND (Asofdate BETWEEN '4/8/2018' AND '4/18/2018')
AND iscommercial = 0
GROUP BY
[AsOfDate]
ORDER BY
[AsOfDate] DESC
基本上我的问题是我需要将“虚拟”数据插入到 select 语句中。我需要为 2018-04-13 到 2018-04-15 创建一行,并使用一般计数(如 502,900)或使用前一天的计数填充它。
理想情况下,我想创建如下所示的内容:
StartDate End Date TotalSubs
----------------------------------
2018-04-13 2018-04-13 502900
我只想在数据集中出现缺失日期的情况下插入此虚拟数据。我将非常感谢任何帮助!
【问题讨论】:
-
这些日期是否存在于您的数据中?或者,如果你有一个日期表,你可以加入它。
-
不,这些值根本不存在于任何表中。基本上,那几天有一项工作被卡住了,因此在解决基本问题之前,没有将数据填充到这些表中。现在我需要为那些日子创建行和一些通用值作为其他计算的占位符
-
毫无意义。如果您按 [AsOfDate] 分组,则 MIN([AsOfDate]) 和 MAX([AsOfDate]) 只是 [AsOfDate]
标签: sql tsql bigdata relational-database