2013-05-13 23 views
10

Mam dwie tabele.Wybierz pierwszy wiersz każdej grupy w sql

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 

przez tabelach I potrzeby wybierania pierwszego wiersza każdego SalesRep Dane z SM_SalesRepWorkflow kolejności od SalesRepId dla CurrentMonth i CurrentYear.

Przykład

Workflowid SalesRepId QuantityAssigned QuantityLeft Miesiąc Rok

WF_101: EMP_101: 100: 90: maj: 2013
WF_101: EMP_102: 100: 100: maj: 2013
WF_101: EMP_103 : 100: 80: Maj: 2013
WF_102: EMP_101: 100: 70: Maj: 2013

więc spowodować chcę jest

WF_101: EMP_101: 100: 90: Maj: 2013
WF_101: EMP_102: 100: 100: Maj: 2013
WF_101: EMP_103: 100: 80: Maj: 2013

Więc może istnieć wiele workflow dla SalesRep. Ale chcę pierwszy dla każdego SalesRep dla bieżącego miesiąca i roku.

+0

Jaki jest Twój porządek? – Rachcha

+0

Sortuj według SalesRepId, WorkflowId i dla każdego SalesRepId chcę pierwszy wiersz tego SalesRepId. – Vijay

Odpowiedz

25

Można użyć funkcji ROW_NUMBER() takiego:

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; 

Fiddle Demo

+0

Po prostu szukam tego dziękuję. – Vijay

0

Mam trochę problemów ze zrozumieniem pytania, więc jeśli będę wyłączony, będę go edytować później, ale wygląda na to, że chcesz zrobić coś takiego jak SELECT * FROM SM_SalesRepWorkflow WHERE Workflowid = latest, gdzie najnowszy jest id przepływu pracy. Być może możesz określić najnowsze poza zapytaniem i wprowadzić je zamiast robić to z kwerendy?

+2

To więcej komentarza niż odpowiedzi. Unikaj tego, aby Twoje posty nie zostały oznaczone. – Rachcha

+0

Udzieliłem odpowiedzi. Myślałem, że odpowiedziałem na to pytanie, ale poprosiłem też OP, aby się powtórzył. Wydało się, że nieuprzejmie opublikować komentarz wyrażający dezorientację, a następnie zbyt pewną odpowiedź. – BWStearns

Powiązane problemy