Maison > base de données > tutoriel mysql > Comment récupérer le premier workflow de chaque commercial en SQL ?

Comment récupérer le premier workflow de chaque commercial en SQL ?

DDD
Libérer: 2025-01-22 06:09:12
original
365 Les gens l'ont consulté

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

Récupération du workflow initial pour chaque représentant commercial

Cette requête SQL récupère efficacement le premier enregistrement de flux de travail pour chaque représentant commercial au cours du mois et de l'année en cours. Les données proviennent de deux tables : SM_Employee et SM_SalesRepWorkflow.

La solution utilise la fonction de fenêtre ROW_NUMBER(). Cette fonction attribue un rang unique à chaque ligne au sein d'une partition définie (dans ce cas, chaque commercial) en fonction d'un ordre spécifié (ici, le workflowid).

Voici la requête SQL :

<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>
Copier après la connexion

Cette requête attribue d'abord un numéro de ligne à chaque workflow pour chaque commercial, classé par workflowid. La requête externe filtre ensuite cet ensemble de résultats, en sélectionnant uniquement les lignes avec rownumber = 1, renvoyant ainsi le premier flux de travail pour chaque salesRepId.

Exemples de données et de résultats :

Compte tenu de cet exemple de données de 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

La requête renverra :

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

Cela reflète fidèlement le premier flux de travail de chaque commercial. Notez que cette approche suppose que workflowid fournit un ordre significatif pour déterminer le « premier » flux de travail. Si un ordre différent est nécessaire, ajustez la clause ORDER BY en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal