Maison  >  Questions et réponses  >  le corps du texte

Obtenez des enregistrements des employés qui ont pris 11 jours de congé consécutifs

<p>J'ai un relevé de présence avec des champs pour le numéro d'employé, le statut et la date de présence. Je souhaite utiliser une requête SQL pour obtenir les enregistrements des employés qui ont pris un congé pendant 11 jours consécutifs. La condition est que si le statut de présence de l'employé est en congé, en absence ou en présence non marquée (une date qui n'existe pas dans le document de présence) pendant 11 jours consécutifs, y compris les week-ends. </p> <p>Les critères peuvent être un mélange de tous les statuts, c'est-à-dire congé, absence ou présence non marquée. </p>
P粉014218124P粉014218124453 Il y a quelques jours476

répondre à tous(1)je répondrai

  • P粉893457026

    P粉8934570262023-08-17 12:58:40

    Cette requête recherche les salariés qui ont le statut « congés », « absents » ou « non marqués » dans leurs fiches de présence pendant 11 jours consécutifs. Il relie les données des employés aux données de présence, filtre le statut et la plage de dates spécifiques, regroupe les données et sélectionne uniquement les groupes avec un nombre d'enregistrements de 11.

    SELECT DISTINCT a.employee_code
    FROM employees e
    JOIN attendance a ON e.employee_code = a.employee_code
    WHERE a.attendance_date BETWEEN a.attendance_date AND DATE_ADD(a.attendance_date, INTERVAL 10 DAY)
      AND a.status IN ('请假', '缺席', '未标记')
    GROUP BY a.employee_code, a.attendance_date
    HAVING COUNT(*) = 11;

    Si cette requête ne fonctionne pas pour vous, veuillez partager votre modèle. S'il y a des erreurs dans cette requête, veuillez le signaler.

    répondre
    0
  • Annulerrépondre