Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 两个值之间的内部联接_Sql Server_Join_Operators_Inner Join - Fatal编程技术网

Sql server 两个值之间的内部联接

Sql server 两个值之间的内部联接,sql-server,join,operators,inner-join,Sql Server,Join,Operators,Inner Join,我目前正在尝试填充我的事实表,但填充所需的时间ID时遇到问题。时间维度已完全填充并完成。基本上,在时间维度上,每行是15分钟的时间段。事实表正在填充有关调用的详细信息。在临时呼叫表中,我有呼叫的开始和结束时间 我想通过在时间开始时以及维度中的时间开始时介于阶段中的开始时间和结束时间之间时连接阶段表上的维度来填充事实表。。我已经使用=运算符运行了下面的查询,但它似乎不起作用,只提取了100行,而我应该期望的是4000行。我可以用BETWEEN代替= INNER JOIN Time_Dim ON i

我目前正在尝试填充我的事实表,但填充所需的时间ID时遇到问题。时间维度已完全填充并完成。基本上,在时间维度上,每行是15分钟的时间段。事实表正在填充有关调用的详细信息。在临时呼叫表中,我有呼叫的开始和结束时间

我想通过在时间开始时以及维度中的时间开始时介于阶段中的开始时间和结束时间之间时连接阶段表上的维度来填充事实表。。我已经使用=运算符运行了下面的查询,但它似乎不起作用,只提取了100行,而我应该期望的是4000行。我可以用BETWEEN代替=

INNER JOIN Time_Dim ON incoming_measure.StartTimeDate = Time_Start
WHERE Time_Start BETWEEN incoming_measure.StartTimeDate AND incoming_measure.EndTimeDate
谢谢您的帮助。

编辑:

您的加入不正确。您的加入格式应为:

Select column from table A
INNER JOIN table b on
    A.column = B.column
INNER JOIN table c on
    B.column = c.column
Where B.column Between start_date AND end_date
您可以使用
运算符

另外,对于
sqlserver
来说,使用
yyyy-mm-dd
格式也很重要

INNER JOIN Time_Dim ON incoming_measure.StartTimeDate = Time_Start
WHERE Time_Start > incoming_measure.StartTimeDate AND Time_Start < incoming_measure.EndTimeDate

你试过了吗?你得到了什么错误?我没有得到任何错误,它运行的问题是行数,它使我的行数降低,理论上,如果它将数据拆分为timeID,它应该增加而不是减少。我对此表示感谢,由于某种原因,顶级解决方案根本不返回行,而中间是我一直使用的。join是否总是必须是a=或者可以是介于两者之间?@RichardC查看我的最新编辑,我认为您的join的语法不正确,谢谢。一件事,我有4个内部连接,我是不是把所有连接一个接一个地放在一起,然后把所有连接放在最后的位置?@RichardC是的,这是正确的。我更新了答案,以演示它看起来如何。嗨,谢谢,是的,得到了这样的结果,仍然产生了与之前相同的行数
INNER JOIN Time_Dim ON incoming_measure.StartTimeDate = Time_Start
WHERE Time_Start Between incoming_measure.StartTimeDate AND incoming_measure.EndTimeDate