我被困住了…一个带有“值”和“数据类型”列的“数据”表填充有发动机负载和车辆速度,每个记录都标有日期,时间,经纬度,长时戳。我想查询车辆行驶时发动机负载是否超过10%(例如,速度>
0)。我可以创建查询来选择发动机负载,也可以创建查询来选择车速,但是当>
10%并且车辆移动时,如果日期,时间和时间长,如何创建查询来选择发动机负载?相等吗?
此查询不起作用,但是它提供了我要尝试执行的操作的简要说明。谁能帮我创建查询?
tables
TName: data
PK datakey
value
fk1 dataeventkey
fk2 datatypenamekey
TName: datatypename
PK datatypenamekey
datatypename
TName: dataevent
PK dataeventkey
datetime
lat
long
SELECT
d1.datetime
FROM
(data INNER JOIN datatypename ON data.datatypenamekey = datatypename.datatypenamekey
INNER JOIN dataevent ON dataevent.dataeventkey = data.dataeventkey) d1
WHERE
( d1.datatypename = "Engine Load [%]" AND d1.value > 10 )
INNER JOIN
SELECT
d2.datetime
FROM
(data INNER JOIN datatypename ON data.datatypenamekey = datatypename.datatypenamekey
INNER JOIN dataevent ON dataevent.dataeventkey = data.dataeventkey) d2
WHERE
( d2.datatypename = "Vehicle Speed [mph]" AND d2.value > 0 )
ON d1.datetime = d2.datetime
我不确定自己是否100%理解,但是我认为您只需要引用同一张表的两个实例即可。可以根据您的SQL做出一些假设,但可以在此处进行尝试:
SELECT
engineLoad.dateTime
FROM
(
SELECT
d.datakey,
de.datetime
FROM
data d
INNER JOIN datatypename dt ON data.datatypenamekey = dt.datatypenamekey
INNER JOIN dataevent de ON de.dataeventkey = d.dataeventkey
WHERE
d.value > 10 AND
dt.datatypename = "Engine Load [%]"
) engineLoad
INNER JOIN
(
SELECT
d.datakey,
de.datetime
FROM
data d
INNER JOIN datatypename dt ON data.datatypenamekey = dt.datatypenamekey
INNER JOIN dataevent de ON de.dataeventkey = d.dataeventkey
WHERE
d.value > 0 AND
dt.datatypename = "Vehicle Speed [mph]"
) vehicleSpeed
ON engineLoad.dataKey = vehicleSpeed.dataKey <==might need to remove this line
AND engineLoad.datetime = vehicleSpeed.datetime
编辑 看起来您也需要两次引用datatypename吗?编辑了上面的内容,因此请重试。
问题内容: 我有两个表: 我想从表1中选择所有具有值A和B的表2行的行。这将是行1和3(不是2行,因为它只有A,没有4行是因为只有B)。我可以在没有子查询的情况下执行此操作吗? (注意:我还需要查询表1中的值,因此我不能只查询表2。) 问题答案: 塔达阿!没有子查询。
问题内容: 我有两张表。我试图将下面的两个示例表与表1结合起来,两次引用表2。例如,如果我查看表1:第2组和成员7,则应在表2中查找ID,并提供以下输出: 表1 表2 有什么建议吗?谢谢 问题答案: SELECT Table_1.*, g.Name, m.Name FROM Table_1 INNER JOIN Table_2 AS g ON Table_1.Group=g.ID INNER JO
问题内容: 该表包含一个ID列,valueHeading列和一个value列。我想将value列分为两个新列,分别称为valueHeading1和valueHeading2,具体取决于值具有哪种valueHeading类型。 所以我想加入这个选择: 编辑:完全加入 使用此选择: 在各自的ID上。我该怎么做呢? 编辑 以说明我要执行的操作: 原始表格: 新表: 问题答案: 在SQLServer200
我想从short_name(国家名称)、name(州表)或region_name的任何可用数据中选择post_id。对region_name而不是short_name(国家名称),name(州表)执行以下查询,结果为真。 请告诉我,我哪里弄错了!
我有这张桌子 我想根据和来计算反应的数量。我试过这个查询。 谁能告诉我如何正确地做到这一点?
我得到了下面的SQL,我想将其转换为有效的HQL。这方面的问题是,不允许根据文档加入子查询。尽管这些是旧文档(v3.3),但在hibernate 5.3中,这一节似乎仍然适用。 我想出了这个HQL: 尝试执行此HQL查询会导致此异常 这将提示 在. 有没有办法加入HQL中的子查询?如果不是,那么获得与具有HQL的SQL相同的结果的最佳方法是什么? 我不擅长转换