Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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
C# 从2个日期范围和人员状态获取结果_C#_Mysql - Fatal编程技术网

C# 从2个日期范围和人员状态获取结果

C# 从2个日期范围和人员状态获取结果,c#,mysql,C#,Mysql,我有一个问题。我试图从2个日期范围和人员状态中得到结果,mysql表有3列:id、日期、人员状态。 我的表架构和示例查询必须连接到此链接: 但此查询是获取2017-07-03中的结果最小id-personstatus='i'和2017-07-03中的最大id-personstatus='o'。(此查询是获取真实结果,但它是针对1个日期范围2017-07-03,我尝试2个日期范围示例2017-07-03:2017-07-07) 如何从2个日期范围获取示例获取最小id和最大id。 例如: 2017

我有一个问题。我试图从2个日期范围和人员状态中得到结果,mysql表有3列:id、日期、人员状态。 我的表架构和示例查询必须连接到此链接:

但此查询是获取2017-07-03中的结果最小id-personstatus='i'和2017-07-03中的最大id-personstatus='o'。(此查询是获取真实结果,但它是针对1个日期范围2017-07-03,我尝试2个日期范围示例2017-07-03:2017-07-07) 如何从2个日期范围获取示例获取最小id和最大id。 例如:

2017-07-03的最小id,个人状态为“i”,2017-07-03的最大id,个人状态为“o”

2017-07-05的最小id,个人状态为“i”,2017-07-05的最大id,个人状态为“o”

2017-07-07的最小id,personstatus='i',2017-07-07的最大id,personstatus='o'

如果sql查询无法实现这一点,那么如何从c#WPF到gridView获取此结果


谢谢。

如果我正确理解了您的问题,下面的查询应该会给出结果

SELECT ta.id as minID, ta._date as minDate, tb.id as maxID, tb._date as maxDate
FROM
(SELECT * FROM t t1
JOIN
(Select MIN(_date) as minDate From t Where personstatus='i' GROUP BY DATE(_date)) t2
ON t1._date=t2.minDate) ta
JOIN
(SELECT * FROM t t3
JOIN
(Select MAX(_date) as maxDate From t Where personstatus='o' GROUP BY DATE(_date)) t4
ON t3._date=t4.maxDate) tb
ON DATE(ta._date)=DATE(tb._date)
有很多连接,我不确定这是否是最好的选择,但它可以像预期的那样处理您的测试数据

结果是

minID minDate maxID maxDate
1 2017-07-03T10:00:00Z 4 2017-07-03T17:40:27Z 
5 2017-07-05T09:10:22Z 8 2017-07-05T17:50:19Z 
9 2017-07-07T09:50:19Z 11 2017-07-07T17:50:19Z 

非常感谢@Ben这是我的结果和答案,但我正在测试这个日期示例('2017-07-09 09 09:51:19','i'),(13,'2017-07-09 09 09:51:19','o')2 datetime范围是相等的,但第一个是个人状态i,第二个是个人状态o,显示结果不正确。这是我的表和查询:我不确定你的问题是什么。你能给我一个更深刻的解释吗?