J'ai une table, Events, qui a un EventId (PK), Date, EmployeeId (FK) et StatusId (FK).SELECT enregistrements base sur le contenu des enregistrements précédents (aucune relation)
Je dois sélectionner un enregistrement en fonction des critères de l'enregistrement qui s'est produit directement avant (chronologiquement par date) pour un employé particulier. Je n'ai aucune idée de comment faire cela puisqu'il n'y a pas de relation.
Je voudrais sélectionner un compte de tous les événements, regroupés par EmployeeId, où:
(a) StatusID = 1
(b) Le dernier événement par ce EmployeeId (par ordre chronologique) a une StatusID de 9.
Notez que l'enregistrement précédent pour tout événement n'est pas nécessairement lié à cet employé.
* édité pour noter que j'utilise SQL Server, et que je référence chronologiquement l'événement précédent par date!
* chronologiquement * basé sur la date ou –
EventID Pourquoi ne pas stocker 'parent_id' avec référence à la rangée précédente alors? Btw, la réponse dépend fortement de ce que vous utilisez SGBD. Dans Oracle, par exemple, grâce aux fonctions analytiques, cela peut être fait très facilement. – zerkms