每年我们都有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个这样的查询。
最后我获取了我放入临时表的结果。
我该如何动态地执行此操作?
我怎么能用循环呢?
答案 0 :(得分:1)
您可以使用group by
每月生成统计信息:
select month(date_column)
, sum(amount)
from YourTable
group by
month(date_column)
T-SQL函数month
从日期时间列中提取数字月份。