当前位置: 首页 > 面试题库 >

用日期表填写日期间隔

燕文昌
2023-03-14
问题内容

我有两张表。

带有客户和日期的订单表。数据仓库中的日期维度表。

订单表并不包含给定月份中每个日期的活动,但是我需要返回一个填充日期和客户缺口的结果集。

例如,我需要这个:

Customer   Date
===============================
Cust1       1/15/2012   
Cust1       1/18/2012
Cust2       1/5/2012
Cust2       1/8/2012

看起来像这样:

Customer   Date
============================
Cust1       1/15/2012   
Cust1       1/16/2012   
Cust1       1/17/2012       
Cust1       1/18/2012
Cust2       1/5/2012
Cust2       1/6/2012
Cust2       1/7/2012
Cust2       1/8/2012

这似乎是一个左外部联接,但它没有返回预期的结果。这是我正在使用的内容,但这并没有按预期返回日期表中的每个日期。

SELECT o.customer, 
       d.fulldate
FROM   datetable d 
       LEFT OUTER JOIN orders o 
                    ON d.fulldate = o.orderdate 
WHERE  d.calendaryear IN ( 2012 );

问题答案:

问题是您需要所有日期的所有客户。当您执行left outer join,customer字段将为NULL。

下面通过cross join输入客户名称和日期来设置驱动程序表:

SELECT driver.customer, driver.fulldate, o.amount 
FROM   (select d.fulldate, customer
        from datetable d cross join
             (select customer
              from orders
              where year(orderdate) in (2012)
             ) o
        where d.calendaryear IN ( 2012 )
       ) driver LEFT OUTER JOIN
       orders o 
       ON driver.fulldate = o.orderdate and
          driver.customer = o.customer;

请注意,此版本假定calendaryear与相同year(orderdate)



 类似资料:
  • 当我使用以下参数(无论是通过来自服务器的HTTPS POST还是通过DocuSign API Explorer)时,日期就会被创建信封的日期预先填充,并且在签名者打开信封进行签名时,日期就会显示为这样的日期。 我在使用沙箱环境。有窃听器吗?这可能和时区有关吗?

  • 问题内容: 我接收到来自Twitter的特定日期以特定格式发送的Twitter消息: 我想将这些日期存储在带有djangos DateTimeField字段的postgresql中的“带有时区的时间戳”字段中。但是,当我存储该字符串时,出现此错误: 我可以自动将twitter datetype转换为python datetime时间(在我的应用程序中的其他地方可以保存日期)。 问题答案: 编写这样

  • 问题内容: 我有一个脚本,需要在脚本的不同行执行以下命令: 在我的陈述中,我有以下内容: 我收到以下错误: 如果我将语句的顺序更改为: 我收到以下错误: 如果我再次将语句更改为: 我收到以下错误: 这是怎么回事,我怎么都可以工作? 问题答案: 您的麻烦是,您有一些代码希望对 模块 进行引用,而其他代码希望对类进行引用 。 显然,不能两者兼有。 当您这样做时: 您首先要设置为对该类的引用,然后立即将

  • 问题内容: 使用标准的mysql函数可以编写查询,该查询将返回两个日期之间的天数列表。 例如,给定2009-01-01和2009-01-13,它将返回一个具有以下值的列表: 编辑:看来我还不清楚。我要生成此列表。我在数据库中存储了值(按日期时间),但希望将它们在左外部联接中汇总到上述日期列表中(我希望这种联接的某些右侧在几天内会为null并将对此进行处理) )。 问题答案: 我将使用此存储过程将所

  • 问题内容: 这个问题已经在这里有了答案 : MySQL如何填充范围内的缺失日期? (5个答案) 2年前关闭。 我有这个查询,我想用一些值(例如零…)填充缺失的日期。 结果如下: 如何用零值填充缺失的日期?有人有主意吗? 我需要这些数据来进行 图表 预览。 问题答案: 通常,您可以使用以下方法在MySQL中生成一系列N个整数: 请注意,您联接的表(someTable)必须至少具有N行。 上面的-1是

  • 问题内容: 我有一个收藏。 产品浏览 我有一个查询,用于获取特定产品的每日视图。 询问 当前结果 问题 问题是,这种聚合不会在有视图的几天内返回。这会导致数据显示不正确: 结果应该看起来像 PS:最好输入开始和结束日期以基于此范围输出结果 问题答案: 您需要几个额外的步骤来返回默认值。首先,你需要使用与设置为收集所有结果中的一个文件内。然后,您可以将$ map 与一组天作为输入。在其中,您可以使用