Abrufen des anfänglichen Arbeitsablaufs für jeden Vertriebsmitarbeiter
Diese SQL-Abfrage ruft effizient den ersten Workflow-Datensatz für jeden Vertriebsmitarbeiter innerhalb des aktuellen Monats und Jahres ab. Die Daten stammen aus zwei Tabellen: SM_Employee
und SM_SalesRepWorkflow
.
Die Lösung nutzt die ROW_NUMBER()
Fensterfunktion. Diese Funktion weist jeder Zeile innerhalb einer definierten Partition (in diesem Fall jedem Vertriebsmitarbeiter) einen eindeutigen Rang zu, basierend auf einer angegebenen Reihenfolge (hier das workflowid
).
Hier ist die SQL-Abfrage:
<code class="language-sql">SELECT * FROM ( SELECT workflowid, salesRepId, quantityAssigned, quantityLeft, month, year, ROW_NUMBER() OVER (PARTITION BY salesRepId ORDER BY workflowid) AS rownumber FROM SM_SalesRepWorkflow ) ranked_workflows WHERE rownumber = 1;</code>
Diese Abfrage weist zunächst jedem Workflow für jeden Vertriebsmitarbeiter eine Zeilennummer zu, sortiert nach workflowid
. Die äußere Abfrage filtert dann diesen Ergebnissatz und wählt nur die Zeilen mit rownumber = 1
aus, wodurch effektiv der erste Workflow für jedes salesRepId
zurückgegeben wird.
Beispieldaten und Ergebnisse:
Angesichts dieser Beispieldaten von SM_SalesRepWorkflow
:
Workflowid | SalesRepId | QuantityAssigned | QuantityLeft | Month | Year |
---|---|---|---|---|---|
WF_101 | EMP_101 | 100 | 90 | May | 2013 |
WF_102 | EMP_101 | 100 | 70 | May | 2013 |
WF_101 | EMP_102 | 100 | 100 | May | 2013 |
WF_101 | EMP_103 | 100 | 80 | May | 2013 |
Die Abfrage gibt Folgendes zurück:
Workflowid | SalesRepId | QuantityAssigned | QuantityLeft | Month | Year |
---|---|---|---|---|---|
WF_101 | EMP_101 | 100 | 90 | May | 2013 |
WF_101 | EMP_102 | 100 | 100 | May | 2013 |
WF_101 | EMP_103 | 100 | 80 | May | 2013 |
Dies spiegelt genau den ersten Arbeitsablauf für jeden Vertriebsmitarbeiter wider. Beachten Sie, dass dieser Ansatz davon ausgeht, dass workflowid
eine sinnvolle Reihenfolge zur Bestimmung des „ersten“ Workflows bereitstellt. Wenn eine andere Reihenfolge erforderlich ist, passen Sie die ORDER BY
-Klausel entsprechend an.
Das obige ist der detaillierte Inhalt vonWie rufe ich den ersten Workflow für jeden Vertriebsmitarbeiter in SQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!