J'ai deux tables .
1-> SM_Employee
(1) employeeid (2) roleid (3) storeid
2-> SM_SalesRepWorkflow
(1) workflowid (2) Salesrepid foreign key to employeeid (3) QuantityAssigned (4) QuantityLeft (5) month (6) year
Par ces tables, je dois sélectionner la première ligne de chaque détail SalesRep de la commande SM_SalesRepWorkflow par SalesRepId pour CurrentMonth et CurrentYear.
Exemple
Workflowid SalesRepId QuantityAssigned QuantitéLeft Mois Année
WF_101: EMP_101: 100: 90: mai: 2013
WF_101: EMP_102: 100: 100: mai: 2013
WF_101: EMP_103: 100: 80: mai: 2013
WF_102: EMP_101: 100: 70: mai: 2013
Donc, le résultat que je veux est
WF_101: EMP_101: 100: 90: mai: 2013
WF_101: EMP_102: 100: 100: mai: 2013
WF_101: EMP_103: 100: 80: mai: 2013
Donc, il peut y avoir beaucoup de flux de travail pour un SalesRep. Mais je veux le premier pour chaque SalesRep pour le mois et l’année en cours.
Vous pouvez utiliser la fonction ROW_NUMBER()
comme ceci:
SELECT *
FROM(SELECT workflowid, salesRepId, quantityAssigned,
quantityLeft, month, year
, ROW_NUMBER()
OVER (PARTITION BY salesRepId
ORDER BY workflowid) AS rownumber
FROM sm_salesRepWorkflow)
WHERE rownumber = 1;
J'ai un peu de difficulté à comprendre la question, donc si je ne le fais pas, je la modifierai après, mais il semblerait que vous souhaitiez faire quelque chose comme SELECT * FROM SM_SalesRepWorkflow WHERE Workflowid = latest
, où dernière correspond à l'identifiant du flux de travail. Peut-être pouvez-vous déterminer le dernier élément en dehors de la requête et l'importer au lieu de le faire à partir de la requête?