我们有一个日志
表,其中包含以下列:作业名称、开始时间、结束时间、状态、源计数、目标计数、拒绝计数、错误计数
等等
每条记录将包含有关每项工作的信息。
我的结果应该像作业名称、开始 dt、结束 dt、状态、源计数、目标计数、拒绝计数、错误计数(今天条目)、源计数、目标计数、拒绝计数、错误计数(昨天计数)
我们需要将今天和今天的记录计数放在一行中。 我们当前正在使用以下查询获取记录。
select * from logtable where start dt=current_date
任何人都可以帮助我使用 SQL 来获得上述结果。
最佳答案
好的,基于您的更新的新答案:
select logToday.`job name`,
logToday.`start time`,
logToday.`end time`,
logToday.status,
logToday.`source count`,
logToday.`target count`,
logToday.`reject count`,
logToday.`error count`,
logYesterday.`source count`,
logYesterday.`target count`,
logYesterday.`reject count`,
logYesterday.`error count`
from logtable logToday
join logtable logYesterday on logYesterday.`start time` = subdate(current_date, 1)
where logToday.`start time` = current_date;
以上内容应该适合您。 您说这些列被命名为“开始时间”,但在选择中您使用“开始 dt”?
旧答案:
如果您只想将今天和昨天的两行放在同一行上,您可以这样做:
select logToday.*, logYesterday.*
from logtable logToday
join logtable logYesterday on logYesterday.startdt = subdate(current_date, 1)
where logToday.startdt = current_date;
如果我错过了什么,请提供更多信息,我会修改答案。
关于mysql - SQL 在一行中获取今天和昨天的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44044996/