0
我有以下TSQL声明,我想弄清楚如何我可以继续获得结果(一次100行),将它们存储在一个变量中(因为我将不得不添加每次选择后的总数)并继续在while循环中选择,直到找不到更多记录,然后将变量总数返回给调用函数。尽管在TSQL总和循环
SELECT [OrderUser].OrderUserId, ISNULL(SUM(total.FileSize), 0), ISNULL(SUM(total.CompressedFileSize), 0)
FROM
(
SELECT DISTINCT TOP(100) ProductSize.OrderUserId, ProductSize.FileInfoId,
CAST(ProductSize.FileSize AS BIGINT) AS FileSize,
CAST(ProductSize.CompressedFileSize AS BIGINT) AS CompressedFileSize
FROM ProductSize WITH (NOLOCK)
INNER JOIN [Version] ON ProductSize.VersionId = [Version].VersionId
) AS total RIGHT OUTER JOIN [OrderUser] WITH (NOLOCK) ON total.OrderUserId = [OrderUser].OrderUserId
WHERE NOT ([OrderUser].isCustomer = 1 AND [OrderUser].isEndOrderUser = 0 OR [OrderUser].isLocation = 1)
AND [OrderUser].OrderUserId = 1
GROUP BY [OrderUser].OrderUserId
如果你正在做的是总结它们,你为什么要把它们分成100个批次?或者你是否需要每批100行的总和? – 2010-06-03 19:41:57
您正在使用哪个版本的SQL Server? – 2010-06-03 19:42:09
我正在使用SQL 2005. 我想分批完成这项工作,以便我不使用SQL Server,因为此表包含10-30百万条记录 – RPS 2010-06-03 19:51:05