Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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 连接连续日期_Mysql_Sql - Fatal编程技术网

Mysql 连接连续日期

Mysql 连接连续日期,mysql,sql,Mysql,Sql,我有需要组合的值的版本。具有其他标识符的记录也可能出现在输入表中 我如何在MySQL中做到这一点 输入 期望 ID Prev Value StartDate FinishDate 1140004 0 1 2019-11-10 00:00:00.000 2019-11-30 23:59:00.000 请添加有关预期结果的更多详细信息,因为您需要对非ID的列执行某种聚合/计算,以获得预期的单行结果,因为这当然需要按ID分组 例

我有需要组合的值的版本。具有其他标识符的记录也可能出现在输入表中

我如何在MySQL中做到这一点

输入

期望

ID      Prev  Value  StartDate                  FinishDate
1140004 0     1      2019-11-10 00:00:00.000    2019-11-30 23:59:00.000

请添加有关预期结果的更多详细信息,因为您需要对非ID的列执行某种聚合/计算,以获得预期的单行结果,因为这当然需要按ID分组

例如,在下面,对于每个Id,我们得到值的总和,即最小开始日期和最大完成日期。当然,您对每一列执行何种聚合取决于您的用例,所以这只是一个示例

您可以使用这个示例


您必须指定合并这些行所应用的规则,即结果为何!!为什么要将prev=0的行和prev=1的行合并在一起?@DmitryReutov不幸的是,这里每个人都可以发表自己的意见。因此,继续给OP一个答案:请看:@RiggsFolly我有一个带有对象状态的版本表。除了本例中处理的状态外,对象还有几个状态,根据这些状态,从生成的输入表中剪切版本,我需要折叠对象版本。由于对象的多个状态在源表中同时进行版本控制,因此可以获得这样的输入。英语水平低,对不起。@ППцАаааааааааааа。那么Prev和Value列是什么意思呢?在您的示例中,看起来您正在执行minStartDate和maxFinishDate,其中Value=1?这个解决方案中有一个巨大的漏洞。这些是特定属性的状态。想象一张有顾客的桌子。客户端有“标识符”、“名称”、“付款状态”、“客户端类型”、“开始”、“结束日期”、“版本标识符”。我们在一个客户机上添加多个记录,每个新记录将具有边界不重叠日期第一个记录Id-1,名称-Petr,付款状态-0,类型-0,SD-01.01.19,FD-12.31.99,Verid-1
ID      Prev  Value  StartDate                  FinishDate
1140004 0     1      2019-11-10 00:00:00.000    2019-11-30 23:59:00.000
select      Id,
            sum(Value) as "Sum Value",
            min(StartDate) as "Min StartDate",
            max(FinishDate) as "Max FinishDate"
from        data
group by    Id