我试图让这个循环自动化,我定义了一个开始和结束时间段@t_begin,@ t_end例如从0开始到24。 目前,我将所有这些代码一个接一个,例如结束t = 60,我需要复制并粘贴60个子查询。如何结合SQL中的子查询中的循环?
下面的事情是tMONTHS = 0,1,2,......我不想把它们全部复制到t = 24例如。
SELECT
(
SELECT COUNT(CODE) FROM #TEMP
WHERE (tMONTHS = 0) AND (KANALKODU = @channel) AND (tSTATUS = 2) AND (TARIH < @datelimit)
) as T,
(
SELECT COUNT(CODE) FROM #TEMP
WHERE (tMONTHS = 1) AND (KANALKODU = @channel) AND (tSTATUS = 2) AND (TARIH < @datelimit)
) as t1,
(
SELECT COUNT(CODE) FROM #TEMP
WHERE (tMONTHS = 2) AND (KANALKODU = @channel) AND (tSTATUS = 2) AND (TARIH < @datelimit)
) as t2,
(
SELECT COUNT(CODE) FROM #TEMP
WHERE (tMONTHS = 3) AND (KANALKODU = @channel) AND (tSTATUS = 2) AND (TARIH < @datelimit)
) as t3;
GO
写作快讯全部大写不会让你帮忙更快。事实上,它可能会延迟帮助。 –
您只需编写一个查询,将您的数据放入24行,然后使用'PIVOT'运算符将它们转换为列。您仍然需要列出列,但重复代码少得多。大约有10亿个关于堆栈溢出的示例以及官方文档等。 –
下面是查询的一个简短示例,将它放入行中。刚枢转它:'SELECT COUNT(CODE) FROM #TEMP WHERE(tMONTHS = 0) AND(KANALKODU = @channel) AND(tSTATUS IN(0,2,3,4)) AND(TARIH <@ datelimit)' –