webForumDet fria alternativet

Update problem

2 svar · 251 visningar · startad av PDahlen

PDahlenMedlem sedan apr. 2004778 inlägg
#1

Har några tabeller, den ena är en temptabell jag använder.

#ArticleWebbProps
ArtUniqueID
ArtLocUniqueID
ArtWebPropUniqueID
WebbValue

Prod_ArticlesLocal
ArtLocUniqueID
ArtUniqueID
CountryID

Prod_rlnArticleWebProperties
rlnArtWebPropUniqueID
ArtLocUniqueID
ArtWebPropUniqueID
WebbValue

Så här ligger det till.
Den temporära tabellen är fylld med info från WebbProp tabellen baserat på land från ArtLocal.
ArtLoc i temptabellen skall sedan uppdateras till det ArtLoc som motsvarande artikel har i ett annat land.

SELECT al.ArtUniqueID, rawp.ArtLocUniqueID, ArtWebPropUniqueID, rlnArtWebPropValue
INTO #ArticleWebbProps
FROM Prod_rlnArticleWebProperties rawp JOIN Prod_ArticlesLocal al ON rawp.ArtLocUniqueID = al.artLocUniqueID
WHERE CountryID = @FromCountryID

UPDATE #ArticleWebbProps awp JOIN Prod_ArticlesLocal al ON al.ArtLocUniqueID = awp.ArtLocUniqueID
 SET awp.ArtLocUniqueID = (
	SELECT al.ArtLocUniqueID
	FROM Prod_ArticlesLocal
	WHERE CountryID = @ToCountryID
	AND al.ArtUniqueID = awp.ArtUniqueID
)

Exempel

FromCountryID = 1
ToCountryID = 2
ArtLoc
--------
 ArtLocUniqueID    ArtUniqueID    CountryID
        1                 1          1
        2                 2          1
        3                 3          1
        4                 4          1
        5                 1          2
        6                 2          2
        7                 3          2
        8                 4          2

ArtWebProps
-----------------
 rlnArtWebPropUniqueID    ArtLocUniqueID    ArtWebPropUniqueID    WebbValue
          1                     1                    2                    3
          2                     2                    2                    3
          3                     3                    2                    3
          4                     4                    2                    3

#ArtWebProps
---------------------
 ArtUniqueID   ArtLocUniqueID   ArtWebPropUniqueID   WebbValue
         1               1                2              3
         2               2                2              3
         3               3                2              3
         4               4                2              3

Då skall #ArtWebProps uppdateras till

#ArtWebProps
---------------------
 ArtUniqueID   ArtLocUniqueID   ArtWebPropUniqueID   WebbValue
         1               5                2              3
         2               6                2              3
         3               7                2              3
         4               8                2              3

Några förslag?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Vad är det för problem med den updatefråga du använder nu?

UPDATE #ArticleWebbProps 
 SET ArtLocUniqueID = (
	SELECT al.ArtLocUniqueID
	FROM Prod_ArticlesLocal
	WHERE CountryID = @ToCountryID
	AND al.ArtUniqueID = #ArticleWebbProps.ArtUniqueID
)
where #ArticleWebbProps.ArtLocUniqueID in (
select al.ArtLocUniqueID 
from Prod_ArticlesLocal al 
WHERE CountryID = @ToCountryID)
PDahlenMedlem sedan apr. 2004778 inlägg
#3

Den jag hade satte bara värdet till Null.
Den du visade funkade förutom en liten grej. Behövde sätta dit ett al och ändra sista ToCountry till FromCountry.

	UPDATE #ArticleWebbProps 
	SET ArtLocUniqueID = (
		SELECT al.ArtLocUniqueID
		FROM Prod_ArticlesLocal al
		WHERE CountryID = @ToCountryID
		AND al.ArtUniqueID = #ArticleWebbProps.ArtUniqueID
	)
	where #ArticleWebbProps.ArtLocUniqueID in (
		select al.ArtLocUniqueID 
		from Prod_ArticlesLocal al 
		WHERE CountryID = @FromCountryID
	)

Kanon, tack för hjälpen! :)

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)