Le 25/03/08, Alain<[EMAIL PROTECTED]> a écrit : > Bonjour la liste, Bonjour, > Je dois à partir d'une macro lancée de calc interroger une base MySQL. > Il s'agit de compter le nombre de jour de présence par identifiant > (id_user). > Pour cela je dispose d'une table (presence p) comportant 2 champs (date > et concaténation des id_user pour cette date). > La macro interroge sur un choix entre une date_debut et une date_fin. > > 1ere question: vaut-il mieux pour des questions de performance effectuer > la concaténation et le décompte du nombre d'occurence par id_user dans > calc ? > > 2eme question: je ne sais pas assembler la requête SQL qui me permettrai > de vérifier la présence de l'id_user dans le champ concaténé, quelqu'un > peut-il m'aider ? tu ne donnes pas de détails sur le type de id_user et de la concaténation des id_user, ni si la concaténation colle les id les un derrière les autres ou rajoute un séparateur ... mais voici un exemple grossier :
si current_id est l'id de l'user que tu cherches SELECT COUNT( * ) FROM presence_p WHERE champ_concat LIKE '%current_id%' AND (date BETWEEN date_debut AND date_fin) mais c'est une ébauche car il peut y avoir des effets inattendus : soit deux id 2733 et 4210, la concaténation donne 27334210 et la recherche avec current_id = 3342 donnera un résultat erronné. Si par hasard tu disposes d'une table (table_presence) comportant simplement un champ date (date_presence) et un champ id_user non concaténé (id_user), tu peux obtenir le nombre de jours de présence simplement : SELECT COUNT(*) FROM table_presence WHERE id_user = current_id AND (date BETWEEN date_debut AND date_fin) > > Par avance je vous remercie. > > Alain > Bonne journée, Manuel --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]