從SQL資料庫取得每位銷售代表的第一個工作流程
本文探討如何從資料庫表中檢索每個銷售代表的第一行數據,重點關注每個代表存在多個工作流程的情況,目標是獲取本月和本年的初始工作流程。
為此,我們可以使用ROW_NUMBER()函數,如下所示:
<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 ) AS RankedWorkflows WHERE rownumber = 1;</code>
此查詢首先依銷售代表ID對每個工作流程記錄分配行號。隨後,它只選擇行號等於1的記錄。
範例用法
考慮以下數據:
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 |
WF_102 | EMP_101 | 100 | 70 | 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中文網其他相關文章!