gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:37:15 24 4
gpt4 key购买 nike

我有一个问题。我试图从 2 个日期范围和人员状态中获取结果,mysql 表有 3 列:id、日期、人员状态。我的表架构和示例查询必须指向此链接: http://sqlfiddle.com/#!9/7dfde3/2

但是这个查询得到的结果是 Min id in 2017-07-03 - personstatus='i' 和 Max id in 2017-07-03 - personstatus='o'。(这个查询得到的是 true 结果,但它是针对1 日期范围 2017-07-03,我正在尝试 2 日期范围示例 2017-07-03 : 2017-07-07)如何从 2 个日期范围获取示例,获取最小 ID 和最大 ID。示例:

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

2017-07-05 的最小 ID,personstatus='i' ,2017-07-05 的最大 ID,personstatus='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

关于c# - 从 2 个日期范围和个人状态获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45188907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com