簡體   English   中英

當總計為正數時將訂單計為“訂單”,但當總計為負數時計為“退貨”

[英]Count Orders as “Orders” when total is postive, but as “Returns” when total is negative

我正在處理一個查詢以跟蹤生產力。 它按天然后按銷售代表。例如:

                          Monday      Tuesday
      Rep 1
            Orders:
            Total Items:
            Total Sales$:
      Rep 2
            Orders:
            Total Items:
            Total Sales$:
      Rep 3
            Orders:
            Total Items:
            Total Sales$:

目前我有一個查詢可以做到這一點,但它只是總訂單,它不會在訂單和退貨之間分解。 所以可能有 4 個“訂單”和 1 個“訂單”,其中該訂單的總數為負數,應該算作“退貨”,但它與“訂單”分組,所以它會 output 5。這就是我想要的報告看:

                          Monday      Tuesday
      Rep 1
            Orders:
            Returns:
            Total Items:
            Total Sales$:
      Rep 2
            Orders:
            Returns
            Total Items:
            Total Sales$:
      Rep 3
            Orders:
            Returns:
            Total Items:
            Total Sales$:

這是我目前將所有“訂單”組合在一起的查詢:

SELECT 
mh.Date,
ctls.SalesRep,
COUNT(DISTINCT mh.Orders) as "Orders",
SUM(md.simd1_TotalItems),
SUM(md.simd1_TotalSales)


FROM c_file c LEFT JOIN simh_file mh on c.SalesRep = mh.SalesRep
              LEFT JOIN simd_file md on md.Orders = mh.Orders AND 
              md.simd_seq = mh.simh_seq
              LEFT JOIN ctl_file_s ctls on ctls.SalesRep = mh.SalesRep

WHERE mh.Date >= 20210101
GROUP BY mh.Date, ctls.SalesRep

但是我希望能夠將“訂單”計為銷售總額為正的訂單,而當訂單銷售總額為負時,可以將其計為“退貨”。 對這樣的事情有什么建議嗎?

很簡單……一個 CASE 語句就可以解決問題:

SUM(CASE WHEN [sale amount column] > 0 THEN 1 ELSE 0) END As 'Sales'
SUM(CASE WHEN [sale amount column] < 0 THEN 1 ELSE 0) END As 'Returns'

第一個 CASE 語句給你一個 1 或 0,這取決於你的銷售額是否大於零,這是一個銷售,然后 SUM 為你提供該代表的銷售總數。

第二個 CASE 語句是相同的,但金額小於 0,這是您的回報。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM