gpt4 book ai didi

SQL Server 查询使用表中的结果来调用函数

转载 作者:行者123 更新时间:2023-12-03 04:11:23 27 4
gpt4 key购买 nike

我的 SQL Server 遇到问题。我有一个包含机器报表的表,另一个包含生产数据的表。两个表获取对应数据的时间不一样。我不知道如何加入这些表。另外,我只需要从表 A 中过滤代码 17。

例如:

表a:

Machine  Code  Time
----------------------------------
EPSX 17 2018-08-28 12:09:32
EPSA 19 2018-08-28 12:09:39
EPSC 17 2018-08-28 11:10:58

表b:

Machine  Waste(meters)  Time
-------------------------------------------
EPSX 57m 2018-08-28 12:09:38
EPSA 128m 2018-08-28 12:09:43
EPSC 12m 2018-08-28 11:11:02

期望的输出:

Machine  Code  Waste(meters)
----------------------------
EPSX 17 57m
EPSC 17 12m

我正在考虑与以下语句建立关系:

a.Machine = b.machine (this is easy)
AND a.Time > b.Time
AND a.Time <= DATEADD(MINUTE, 2, b.Time)

我该如何解决这个问题?也许使用函数?我可以直接从表 b 中的函数得到正确的结果。但是我可以调用表 a 并在函数调用中使用 a.Time 吗?

最佳答案

表中的时间a对于 EPSX2018-08-28 12:09:32 ,在表b2018-08-28 12:09:38 ,即a.time < b.time ,但您正在测试 a.Time > b.Time AND a.Time <= DATEADD(MINUTE, 2, b.Time) 。这是行不通的。将其更改为

a.time BETWEEN DATEADD(MINUTE, -2, b.Time) AND b.time

或者你可以扭转它并测试

b.time BETWEEN a.time AND DATEADD(MINUTE, 2, a.Time)

在一起

SELECT a.Machine, a.Code, b.[Waste(meters)]
FROM
a
INNER JOIN b
ON a.Machine = b.Machine AND
b.time BETWEEN a.time AND DATEADD(MINUTE, 2, a.Time)
WHERE
a.Code = 17

关于SQL Server 查询使用表中的结果来调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52081462/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com