0
我有一个输出正确信息的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
设置[坏习惯踢 - 把NOLOCK无处不在](http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/) - 不建议(根本不要)在任何地方使用它 - 恰恰相反! –