首页 > 数据库 > mysql教程 > 如何用SQL检索每个销售代表的第一个工作流程?

如何用SQL检索每个销售代表的第一个工作流程?

DDD
发布: 2025-01-22 06:09:12
原创
330 人浏览过

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

检索每个销售代表的初始工作流程

此 SQL 查询有效地检索当前月份和年份内每个销售代表的第一个工作流程记录。 数据来自两个表:SM_EmployeeSM_SalesRepWorkflow.

该解决方案利用了ROW_NUMBER()窗口函数。此函数根据指定的顺序(此处为 workflowid)为定义的分区内的每一行(在本例中为每个销售代表)分配唯一的排名。

这是 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>
登录后复制

此查询首先为每个销售代表的每个工作流程分配一个行号,按 workflowid 排序。 然后,外部查询过滤此结果集,仅选择带有 rownumber = 1 的行,有效返回每个 salesRepId.

的第一个工作流程

示例数据和结果:

鉴于来自 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

查询将返回:

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

这准确地反映了每个销售代表的第一个工作流程。 请注意,此方法假设 workflowid 提供有意义的顺序来确定“第一个”工作流程。 如果需要不同的顺序,请相应地调整 ORDER BY 子句。

以上是如何用SQL检索每个销售代表的第一个工作流程?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板