擷取每位銷售代表的初步工作流程
此 SQL 查詢有效地檢索當前月份和年份內每個銷售代表的第一個工作流程記錄。 數據來自兩個表:SM_Employee
和 SM_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中文網其他相關文章!