我有一个简单的任务:我需要看看哪些支付模式已经在使用和哪些不再被使用。下面是我的模式:
SELECT [PAY_MODE_ID]
,[BILL_DATE]
FROM [dbo].[BILL_INFO]
所有付款方式如下:
1, Cash
2, Cheque
3, Debit
4, Free
5, Credit Card
6, Advanced Cash
7, Cash Card
8, Visa Electron
9, e-Pay
10, Bank Transfer
11, Third-Party Collections
我想看到一个使用趋势,因为每种支付方式中的多少是每月使用的。我希望看到哪一种模式正在消亡。
发布于 2018-05-18 08:17:08
如果您正在使用类似于MS的内容,请尝试以下第一步:
--Build sample dataset
CREATE TABLE #TMP([PAY_MODE_ID] TINYINT,[BILL_DATE] DATE)
GO
INSERT INTO #TMP
SELECT CAST(RAND()*11 AS TINYINT),DATEADD(DD,CAST(RAND()*365 AS INT),'20180101')
GO 10000
SELECT
[PAY_MODE_ID]
,MONTH([BILL_DATE]) AS [MonthNo]
,DATENAME(Month,[BILL_DATE]) AS [Month]
,COUNT(*) AS Cnt
FROM #TMP
GROUP BY
[PAY_MODE_ID]
,MONTH([BILL_DATE])
,DATENAME(Month,[BILL_DATE])
如果要在SQL环境中而不是在第三方工具中传递数据,请使用如下所示:
SELECT
[PAY_MODE_ID]
,January,February,March,April,May,June,July,August,September,October,November,December
FROM
(
SELECT
[PAY_MODE_ID]
,DATENAME(Month,[BILL_DATE]) AS [Month]
,COUNT(*) AS Cnt
FROM #TMP
GROUP BY
[PAY_MODE_ID]
,DATENAME(Month,[BILL_DATE])
) D
PIVOT
(SUM(Cnt) FOR [Month] IN (January,February,March,April,May,June,July,August,September,October,November,December)) M
发布于 2018-05-18 08:13:42
如果提供了这些信息(一些样本数据会非常有用),我建议您尝试一下这个查询-
SELECT COUNT([PAY_MODE_ID])
,[PAY_MODE_ID]
FROM [dbo].[BILL_INFO]
GROUP BY [PAY_MODE_ID], MONTH([BILL_DATE]), YEAR([BILL_DATE])
这将根据使用的次数对所有可用的支付模式进行分组。
https://stackoverflow.com/questions/50406467
复制相似问题