[英]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.