每年我们有 12 个月。我应该编写一个查询,每月选择一个表。例如,我应该制作报告,显示每月的交易计数。
我做到了,但方式错误。
我每个月写 12 个查询。
像这样:
SET @MONTH12M = (SELECT SUM(Amount) AS TOT
FROM [fidilio].[dbo].[CardTransactionLog] CL
JOIN CardTransaction CT ON CT.CardTransactionLogId = CL.CardTransactionLogId
WHERE (cl.TransactionPersianTimeStamp > N'1393/12/01'
AND cl.TransactionPersianTimeStamp< N'1393/12/31')
)
INSERT INTO #TEMP(MonthValue, CountValue, TypeValue)
SELECT
12,
CASE WHEN @MONTH12M IS NULL THEN 0 ELSE @MONTH12M END,4
我还有 11 个这样的查询。
最后,我获取了放入临时表中的结果。
如何动态地执行此操作?
如何用循环来做到这一点?
最佳答案
您可以使用group by
来生成每月的统计信息:
select month(date_column)
, sum(amount)
from YourTable
group by
month(date_column)
T-SQL 函数 month
从日期时间列中提取数字月份。
关于sql-server - 在 SQL Server 中循环月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28261576/