我有一个带有历史记录的表,该表由主表中的多个触发器发布在该表中。我想在历史记录表上创建一条select语句,在该表中,我的每条记录都由其先前的记录(由相同的LineID和最高的ActionDate标识)进行了联接,因此我可以提取这两者之间的差异。
我尝试了此操作,但是(My)SQL不允许引用JOINED子选择中的第一个“ FROM”表:where子句中的未知列h1.LineID
select
h1.*,
prev.*
from history h1
LEFT OUTER JOIN
(Select *
From history h2
where h1.LineID=h2.LineID and h2.ActionDate < h1.ActionDate
order by Actiondate desc limit 1
) prev on h1.LineID=prev.LineID
我怎样才能做到这一点?
您可以使用以下命令获取对上一行的引用:
select h.*,
(select h2.ActionDate
from history h2
where h2.LineId = h.LineId and h2.ActionDate < h.ActionDate
order by h2.ActionDate desc
limit 1
) as prev_ActionDate
from history h;
如果需要完整的行,可以使用join
获取数据:
select h.*, hprev.*
from (select h.*,
(select h2.ActionDate
from history h2
where h2.LineId = h.LineId and h2.ActionDate < h.ActionDate
order by h2.ActionDate desc
limit 1
) as prev_ActionDate
from history h
) h left join
history hprev
on hprev.LineId = h.LineId and hprev.ActionDate = h.prev_ActionDate;
问题内容: 我正在寻找连接2个表并仅显示明细表的最后一条记录的正确SQL代码。 我有一个带有2个表的数据库, 每个交易都有多个评论,但是我想创建一个显示所有交易的视图,并且仅显示每个交易的最后一条评论(由CommentTime确定)字段 问题答案: 编辑:我没有足够接近地阅读初始问题,也没有注意到视图中需要所有DEALS行。以下是我的修改后的答案:
问题内容: 请问您在以下方面的帮助吗? 我正在尝试计算结果中从一条记录到下一条记录的变化。如果我向您显示我当前的查询和结果,可能会有所帮助… 查询给我这些结果… 理想情况下,我想要获得的结果将类似于以下内容… 查看“ 2012年1月1日”的行,由于“笔数”已从以前的526增加到531,因此“ TChange”的值为5。“ FChange”将基于“ Funded”字段。我猜想要知道的是,此示例的上一
问题内容: 我已经读到Joins比子查询更有效,我的查询非常慢,并且使用很多子查询,因此我想改进它,但不知道如何做。 我有以下表格: 查询是: -该查询的目标是为每个房屋(即每个aacode)生成一个文本形式的字符串,以表格等形式描述房屋。因此,三人房屋的输出可能看起来像 我知道我当前的HsHld代码很糟糕,但是包含在下面: 有几项关键的事情需要改变。 目前,我无法从Rel字段连接到Relativ
问题内容: 我在SQL Server输出中有一个查询, 假设我有一个具有某些字段的表(Ex.StudentMaster)-没有唯一约束。对于前 RollNumber和Name该表具有相同的数据。例如: 我只想获得第三条记录。如何识别此唯一记录? 问题答案: 任何一行都是第三行:-) 删除“第三”行:-) 删除最后一行:
问题内容: 我有以下表格- 这是SQLFIDDLE 分类 和 产品展示 我想获取类别列表以及活跃产品的数量。如果某个类别的产品均未激活,则应返回0。 有点像下面的表格- 我想出了以下查询- 仅当 每个类别 中至少有一个产品处于活动状态时, 以上 查询才有效 。如果没有产品面世,它应该返回为 0 我怎样才能解决这个问题 ? 这是SQLFIDDLE 问题答案: 使用代替: 将谓词from 子句移至,这
问题内容: 我有一个表格,其中有一个父/子关系,其中每个孩子的列数据都需要连接到父母中。 这是一些示例数据,该数据已损坏,因此父记录(Id = 96) 为 NULL 。关系是通过字段进行的: 数据应如下所示: 编辑: 后代级别可以是任何深层次,但深子级后代需要更新为主要的父级 。拿下面的最后两个记录( Id = 100 和 Id = 101 )都链接到97。因为 Id = 97 IS NOT NU