为每个 ID 乘以一组日期

Posted

技术标签:

【中文标题】为每个 ID 乘以一组日期【英文标题】:Multiplicate set of dates for each ID 【发布时间】:2019-09-04 12:05:47 【问题描述】:

有两个表

表 1(1 列 name_employee,50 行)包含所有唯一的员工姓名 表 2(1 列日期,10 行)包含所有唯一日期

我想在 SQL Server Management Studio 中创建一个新数据集,其中包含唯一日期的集合为每个唯一员工重复。这将产生一个包含 2 列(name_employee 和 date)和 50x10 行的数据集。

【问题讨论】:

【参考方案1】:

您必须使用 CROSS JOIN。CROSS JOIN 将第一个表 (T1) 中的每一行与第二个表 (T2) 中的每一行连接起来。换句话说,交叉连接返回两个表中行的笛卡尔积。

 SELECT
     name_employee,date
    FROM
     Table1
    CROSS JOIN Table2;

【讨论】:

以上是关于为每个 ID 乘以一组日期的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery - 为每个 id 添加完整的日期范围

为每个唯一 ID 选择最近 30 个日期

如何在每个日期获取每个类型的最大 ID

在访问查询中查找两个字段的 MAX 日期

根据条件按 ID 组合重叠日期

从查找表中获取每个类型和每个日期的最大 ID