SQL分组和排除类别

时间:2018-06-11 09:06:55

标签: sql-server grouping

我有以下查询:

SELECT distinct sender AS [Supplier], t1.date, COUNT(Status) AS [Transactions]
 FROM tx

  CROSS APPLY ( VALUES (CONCAT(left(DATENAME(mm, Date_Reported),3),' ',
                             DATENAME(yyyy, Date_Reported)),
                      DATEPART(mm, Date_Reported)
                     )
            ) t1 (Date, Morder)

WHERE Date >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AND   Date < DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)
GROUP BY sender, t1.date
ORDER BY [Transactions] DESC;

以下查询为我提供了100多个供应商的列表,这些供应商按当月完成交易最多的那些供应商的顺序排列。我想要的是前10名和剩下的组合作为&#34; OTHER&#34;。

然而,为了增加一点复杂性,我在供应商下面有一行被称为&#34;未分配&#34;。这总是排在前5位,但我希望它属于&#34; OTHER&#34;因为它不代表我的前15名。

我有什么想法可以解决上面我遇到的两个问题?

非常感谢提前。

0 个答案:

没有答案