【发布时间】:2017-04-28 08:14:35
【问题描述】:
我知道标题很奇怪,但我真的不知道如何解释我的问题。 我的应用程序有问题,我必须更改此请求。
SELECT DISTINCT utilisateurs.id, nom, prenom, SUM(pointages.nombre) as heuresConsommees
FROM utilisateurs
INNER JOIN pointages on pointages.cp = utilisateurs.cp
WHERE pointages.idPrestation = %d
AND pointages.id_affaire = %d
AND utilisateurs.id = %d
GROUP BY utilisateurs.nom,prenom, utilisateurs.id
我的问题是值 pointages.nombre 可以在数据库中插入两次,对于相同的事务、prestation 和周。 我无法在不修改我的应用程序的所有架构的情况下修改允许这种双重插入的请求,所以我想知道这是否可以选择值 pointages.nombre 的总和但无需第二次。可能有一个独特的但我不知道在这种情况下该怎么做。 提前致谢。
【问题讨论】:
-
确实需要执行 SELECT DISTINCT,因为 GROUP BY 不会返回重复项。
-
添加一些示例表数据和预期的结果!
-
pointages中是否可以有多个 VALID 条目?还是总是多次插入一个(nombre)条目?你能告诉我们pointages的结构吗? -
积分中可以有多个条目,但它们不是真正有效的,不得出现。该应用程序的目的是检查员工工作了多少小时。并且系统允许上级修改他们工作的小时数,但是当他这样做时,请求将两者都计算在内。如果员工说他工作了 5 个小时,而上级说他只工作了 4 个小时,那将是 9 个。将另一个请求从插入更改为更新会更容易,但是应用程序是围绕这个请求进行的,如果我更改它,我将不得不改变所有的架构。
-
所以实际上,您只希望每个“条件”中的
pointages中的最后一个条目?