Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL以获取单行中的今天和昨天记录_Mysql - Fatal编程技术网

Mysql SQL以获取单行中的今天和昨天记录

Mysql SQL以获取单行中的今天和昨天记录,mysql,Mysql,我们有一个log表,该表由以下列组成:作业名称、开始时间、结束时间、状态、源计数、目标计数、拒绝计数、错误计数等 每个记录将包含有关每个作业的信息。 我的结果应该是作业名称、开始dt、结束dt、状态、源计数、目标计数、拒绝计数、错误计数(今天输入)、源计数、目标计数、拒绝计数、错误计数(昨天计数) 我们需要有今天的记录计数,以及今天在一行。 我们目前正在使用下面的查询获取记录 select * from logtable where start dt=current_date 任何人都可以帮助

我们有一个
log
表,该表由以下列组成:
作业名称、开始时间、结束时间、状态、源计数、目标计数、拒绝计数、错误计数

每个记录将包含有关每个作业的信息。 我的结果应该是作业名称、开始dt、结束dt、状态、源计数、目标计数、拒绝计数、错误计数(今天输入)、源计数、目标计数、拒绝计数、错误计数(昨天计数)

我们需要有今天的记录计数,以及今天在一行。 我们目前正在使用下面的查询获取记录

select * from logtable where start dt=current_date

任何人都可以帮助我使用SQL来获得上述结果。

好的,基于您的更新的新anser:

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;
以上内容应该适合你。 您说列的名称为“开始时间”,但在选择中使用“开始时间”

旧答案:

如果您只想将今天和昨天的两行放在同一行上,可以这样做:

select logToday.*, logYesterday.*
from logtable logToday
join logtable logYesterday on logYesterday.startdt = subdate(current_date, 1)
where logToday.startdt = current_date;

如果我遗漏了什么,请提供更多信息,我将修改答案。

您知道如果您运行此查询会发生什么混乱吗?我不确定MySQL是否会执行它。您根据非常奇怪的条件将一个表加入到同一个表中。。。结果列名将重叠…表实际上没有连接,它只是为每个表选择一行,并假设其重叠,这就是使用别名的原因。如果您想要名称为logname的列,只需使用logToday.logname或logDayed.logname将它们分开。但如果我遗漏了什么,我总是喜欢被纠正,这样我就可以学到新的东西。请澄清你的问题,这很难理解——“今天和今天”。。。对于这个问题,给出日期列的数据类型是非常重要的——是Date还是DATETIME。最好为您的表编写CREATETABLE查询。对不起,今天和昨天一样。start\u dt、end\u dt是时间戳列