Heim > Datenbank > MySQL-Tutorial > Wie rufe ich den ersten Workflow für jeden Vertriebsmitarbeiter in SQL ab?

Wie rufe ich den ersten Workflow für jeden Vertriebsmitarbeiter in SQL ab?

DDD
Freigeben: 2025-01-22 06:09:12
Original
330 Leute haben es durchsucht

How to Retrieve the First Workflow for Each Sales Representative in SQL?

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage