Checkpoint: Correction de l'erreur SQL MIN() vide dans la récupération de la première date des séquences - remplacé par post-traitement JavaScript
This commit is contained in:
@@ -159,17 +159,21 @@ export async function getApprenantsWithAttestationStatus(formationId: number) {
|
||||
const db = await getDb();
|
||||
if (!db) return [];
|
||||
|
||||
// Récupérer les premières dates de chaque séquence
|
||||
const premieresDates = await db
|
||||
// Récupérer toutes les dates de formation
|
||||
const toutesLesDates = await db
|
||||
.select({
|
||||
sequenceId: datesFormation.sequenceId,
|
||||
premiereDate: sql<Date>`MIN(${datesFormation.date})`,
|
||||
date: datesFormation.date,
|
||||
})
|
||||
.from(datesFormation)
|
||||
.groupBy(datesFormation.sequenceId);
|
||||
.from(datesFormation);
|
||||
|
||||
// Créer un map pour accès rapide
|
||||
const datesMap = new Map(premieresDates.map(d => [d.sequenceId, d.premiereDate]));
|
||||
// Calculer la première date de chaque séquence en JavaScript
|
||||
const datesMap = new Map<number, Date>();
|
||||
toutesLesDates.forEach(({ sequenceId, date }) => {
|
||||
if (!datesMap.has(sequenceId) || date < datesMap.get(sequenceId)!) {
|
||||
datesMap.set(sequenceId, date);
|
||||
}
|
||||
});
|
||||
|
||||
const results = await db
|
||||
.select({
|
||||
|
||||
Reference in New Issue
Block a user