【发布时间】:2022-01-20 06:59:33
【问题描述】:
所以,昨天我注意到,当我尝试时,您可以在 SQL 中加入一种“偏移量”
“加入日志2 ON l1.LogNumber = l2.LogNumber -3”
它将例如从第一个表中的 LogNumber 1 连接到第二个表中的 LogNumber 4。这非常有效。我的问题是,当我尝试进行更复杂的“数学连接”时,我似乎不知道如何让它工作。我的问题如下:我现在有一张桌子,上面有一些来自原木的测量数据,比如木头。还有另一个表,其中包含从所述日志中锯出的板的数据。四块板来自同一个原木。我正在尝试进行连接,其中表中的前四个板连接到第一个日志,第二批四个板连接到第二个,等等。第二个表中的 BoardNumber 不是从 1 开始,而是从 230609 开始。所以,我做了一些数学运算,找出了如何计算正确的 log 和 boardnumber,我尝试了以下代码:
"加入板 pg ON ((p1.LogNumber - 0,75) * 4 + 230608) = BoardNumber"
仅此一项就应该只加入每个日志中的第一个板,所以我必须进行更多的加入才能获得其他的。但是,这不起作用,我收到错误 1241“操作数应包含 1 列”。当我稍微更改括号时,它显示“1241:操作数应包含 2 列”。而且我真的不明白这个JOIN有什么问题。
【问题讨论】:
-
明显错误 - 逗号而不是点作为小数分隔符。如需更详细的诊断,您必须提供完整的查询文本。
-
加入条件可以是产生标量结果的任何复杂程度的表达式。甚至是子查询 - dbfiddle.uk/…