Désolé si mon titre n'est pas correct car je ne sais pas comment expliquer ma situation. Je viens de démarrer une nouvelle application web qui a un workflow. J'ai une table pour stocker mon statut de flux de travail.Obtenir le niveau de la hiérarchie en utilisant T-SQL
WorkflowStatus Table
Id | Name
---|------------
1 | Submitted
2 | Accepted
3 | Not Accepted
4 | Returned for Re-Submission
5 | Processed
6 | Returned for Re-Acceptance
7 | Completed
et moi avons une autre table pour stocker toute navigation possible pour chacun des statuts.
WorkflowNavigation Table
WorkflowStatusId | NextWorkflowStatusId
------------------|------------------------
1 | 2
1 | 3
1 | 4
2 | 5
2 | 6
5 | 7
4 | 1
6 | 2
6 | 3
6 | 4
Maintenant, je suis coincé sur la façon d'obtenir le niveau hiérarchique du flux de travail. J'ai essayé de faire la jointure en utilisant avec la clause mais cela m'a donné une boucle infinie à cause du flux réversible. Je veux seulement interroger des informations comme ci-dessous de la table WorkflowNavigation (Fondamentalement, c'est la version propre de WorkflowNavigation c'est-à-dire sans le flux inverse).
WorkflowStatusId NextWorkflowStatusId
1 -> 2
2 -> 5
5 -> 7
1 -> 2
2 -> 6
6 -> 3
6 -> 4
1 -> 3
1 -> 4
Et puis je veux obtenir quelques informations comme ci-dessous de la requête ci-dessus.
WorkflowStatusId | Level
------------------|-------
1 | 1
2 | 2
3 | 2
4 | 2
5 | 3
6 | 3
7 | 4
Quelqu'un peut-il m'aider sur la requête T-SQL. Merci!