объединить содержимое двух отдельных запросов в один и обновить - PullRequest
0 голосов
/ 14 января 2012

Надеюсь, я правильно это описываю.У меня есть два следующих запроса на обновление SQL, которые по отдельности работают правильно.Мне нужно взять поле, обновленное в первом, и использовать его в части SQL второго.

Это первое.

UPDATE Products_Joined SET TechSpecs = 'var srating_' 
+ Products_Joined.ProductCode + '="' + CAST(Reviews.AverageRating AS VARCHAR) + '";var rcount_' + Products_Joined.ProductCode + '="' + CAST(Reviews.TotalRatings AS VARCHAR) + '";' 

FROM Products_Joined LEFT OUTER JOIN (
SELECT Reviews.ProductCode, AVG(Reviews.Rate) AS AverageRating, COUNT(Reviews.ReviewID) AS TotalRatings
FROM Reviews
GROUP BY Reviews.ProductCode
) AS Reviews ON Products_Joined.ProductCode = Reviews.ProductCode;

И это второе.

DECLARE @OpenTag varchar(100)
SET @OpenTag = '<script type="text/javascript" language="javascript">'

UPDATE Products_Joined
SET TechSpecs  = STUFF(CAST(TechSpecs AS VARCHAR(MAX)) ,
                   CHARINDEX(@OpenTag, CAST(TechSpecs AS VARCHAR(MAX)) ,1)  + LEN(@OpenTag),
                        CHARINDEX('</script>',CAST(TechSpecs AS VARCHAR(MAX)) ,1)-(CHARINDEX(@OpenTag, CAST(TechSpecs AS VARCHAR(MAX)) ,1)  + LEN(@OpenTag)), 
                   '*****HERE IS WHERE I WANT TO PUT THE FIELD FROM THE FIRST SQL QUERY*******')
WHERE TechSpecs LIKE '%<script type="text/javascript" language="javascript">%</script>' 

1 Ответ

1 голос
/ 14 января 2012

Вы можете использовать предложение SQL Server OUTPUT (начиная с SQL Server 2005) для вывода результата первого запроса в переменную, которую можно использовать во втором запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...