【发布时间】:2018-03-29 13:32:52
【问题描述】:
我有一张表,其中包含我想要交叉联接的员工的月度数据,但前提是要确保他们在同一个月内。表格如下所示:
Month Emp_id
1/1/2017 123
1/1/2017 234
1/1/2017 345
1/1/2017 456
2/1/2017 123
2/1/2017 234
2/1/2017 345
...
我想做这样的事情:
select *
from t1
cross join t1 as t2
on t1.Month = t2.Month
有没有办法做到这一点?
编辑:
详细说明,如果我每个月和 12 个月有 100 名员工,我希望得到一个包含 120,000 行的输出表(每个月 100 * 100 笛卡尔,乘以 12(每个月 1)而不是做全笛卡尔坐标系,即 1,440,000。
【问题讨论】:
-
您的意思是
INNER JOIN?CROSS JOIN用于创建笛卡尔积,您不要使用ON子句。 编辑:您可以使用WHERE子句,但是CROSS JOIN隐式变为INNER JOIN,然后使用正确的语法会更好。 -
@Larnu - 是的 - 有没有办法在给定的月份内创建笛卡尔?
-
我真的不明白你的意思。对不起。您可能想尝试详细说明您的问题。
标签: sql sql-server join