gpt4 book ai didi

c# - 将结果放在表格中,除以一周中的所有天数

转载 作者:行者123 更新时间:2023-11-29 00:08:06 24 4
gpt4 key购买 nike

我试图将数据库的记录放到表中,但我很挣扎,因为我必须将它们划分为工作日,并且在每个工作日,它们可以在早上、下午、晚上或全天。 enter image description here

上图是我想要显示信息的方式。澄清

项目 1 - 工作日(星期一 - 27/10/2014)等等。

然后在第二列(Manhã = Morning)我想显示那天早上插入的所有内容。

(例如:周一早上可以有4条,下午只能有1条,晚上可以有0条。)

该表上方是一周中每一天的网络网格结果。我所做的是:

"SELECT DISTINCT dataOcorrencia FROM relatoriosSemanais WHERE semana= '43'" 

然后把它放在一个网络网格上,它让我从第 43 周开始所有工作日,是的,这一周将是动态的。

但是现在我不知道如何像我上面告诉你们的那样获取记录。

我的数据库有周、时段(早上、下午、晚上、全天)、天。

不知道你能不能理解我的问题。

27  26/10/2014 12:30    26/10/2014 13:58    Mobile  Outros  Alerta CC3  Clientes a ficar com carregamentos em processamento.    FECHADO 43  Sim Manhã   Criticidade Muito Elevada   Relatório SI        26-10-2014
28 26/10/2014 09:39 26/10/2014 11:45 Serviços Online Área de Cliente Alerta CC3 Área de Cliente indisponível FECHADO 43 Sim Tarde Criticidade Muito Elevada Relatório SI 26-10-2014
29 26/10/2014 09:39 26/10/2014 11:45 Serviços Online Área de Cliente Alerta CC3 Área de Cliente indisponível FECHADO 43 Sim Manhã Criticidade Regular Relatório SI 26-10-2014

最佳答案

要按周工作,您需要一个简单的公式来将任何 DATETIME 值转换为前一个星期日的日期。这可以按如下方式完成

FROM_DAYS(TO_DAYS(record_date) -MOD(TO_DAYS(record_date) -1, 7))

(如果您的周从星期一开始,请使用 -2 而不是 -1。)

为什么要这样做?因为您可以使用这种 WHERE 子句选择一周的数据。

 WHERE record_date >= FROM_DAYS(TO_DAYS(NOW()) -MOD(TO_DAYS(NOW()) -1, 7)) - INTERVAL 1 WEEK
AND record_date < FROM_DAYS(TO_DAYS(NOW()) -MOD(TO_DAYS(NOW()) -1, 7))

使用该设计模式,我建议您尝试类似这样的方法来设置您的表格。您还没有告诉我们您的专栏名称,因此不可能给您一个完美的查询。

SELECT DATE_FORMAT(DATE(record_date),'%W') AS weekday,
SUM(Sim = 'Sim Manhã') AS `Manhã`,
SUM(Sim = 'Sim Tarde') AS `Tarde`,
SUM(Sim = 'Sim Noite') AS `Noite`,
SUM(Sim = 'Sim Todo o Dia') AS 'Todo o Dia'
FROM dataOcorrencia
WHERE record_date >= FROM_DAYS(TO_DAYS(NOW()) -MOD(TO_DAYS(NOW()) -1, 7)) - INTERVAL 1 WEEK
AND record_date < FROM_DAYS(TO_DAYS(NOW()) -MOD(TO_DAYS(NOW()) -1, 7))
GROUP BY DATE(record_date)

这是有效的,因为如果列 Sim 的值为 'Sim Manhã,则值 Sim = 'Sim Manhã'1 ' 否则为零。因此,将 1 值相加计算条件为真的行数。

还有一件事:DATE_FORMAT(...'%W') 产生星期名称。如果您在打开连接后立即向 MySQL 发出此命令,您将获得葡萄牙语的日期名称。

SET lc_time_names = 'pt_BR'

关于c# - 将结果放在表格中,除以一周中的所有天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575722/

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