我有一个输出正确信息的FETCH查询,但它通过提取输出每个循环作为单独的输出查询。
我要做的是将结果输出到一个表中(或者在我的情况下,我最终会使用此查询创建一个视图)
DECLARE @THID Cursor
DECLARE @THIDValue int
SET @THID = CURSOR FOR
SELECT
Transheader.ID
FROM
TransHeader WITH (nolock)
INNER JOIN
TransHeaderUserField WITH (nolock) ON TransHeader.ID = TransHeaderUserField.ID
WHERE
(TransHeaderUserField.Rework = '1')
AND TransHeader.ID IS NOT NULL
OPEN @THID
FETCH NEXT FROM @THID INTO @THIDValue
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT
(SELECT
SUM(totPartCost)
FROM
TransDetail
WHERE
TransHeaderID = @THIDValue) AS ThePartCost,
TransHeader.OrderNumber, TransHeader.ClassTypeID,
TransHeader.OrderCreatedDate, TransHeaderUserField.Rework,
TransHeaderUserField.Rework_Type,
TransHeaderUserField.Rework_Orders, TransHeaderUserField.Rework_Employee,
TransHeaderUserField.Rework_Department, TransHeader.Description
FROM
TransHeader WITH (nolock)
INNER JOIN
TransHeaderUserField WITH (nolock) ON TransHeader.ID = TransHeaderUserField.ID
WHERE
(TransHeaderUserField.Rework = '1') AND TransHeader.ID = @THIDValue
ORDER BY
TransHeaderUserField.Rework_Department, TransHeaderUserField.Rework_Employee
FETCH NEXT FROM @THID INTO @THIDValue
END
CLOSE @THID
DEALLOCATE @THID
答案 0 :(得分:1)
将每个SELECT INSERT到一个临时表中,在完成循环的所有迭代之后,从临时表中选择SELECT *。