我有列的表計數的問題:SKU,計數SQL:與兩個表
另一個表中有SKU與不同的圖像,所以在此表中一個SKU重複幾次與多個文件擴展名,我需要做的是算一個SKU在第二個表圖像的數量,然後在該號碼的第一個表更新計數列。我將不勝感激任何幫助。
UPDATE
MediaResource
SET
[mrCount] =
(
SELECT
Count(PartNumber)
)....I don't know how to handle this
我有列的表計數的問題:SKU,計數SQL:與兩個表
另一個表中有SKU與不同的圖像,所以在此表中一個SKU重複幾次與多個文件擴展名,我需要做的是算一個SKU在第二個表圖像的數量,然後在該號碼的第一個表更新計數列。我將不勝感激任何幫助。
UPDATE
MediaResource
SET
[mrCount] =
(
SELECT
Count(PartNumber)
)....I don't know how to handle this
嘗試這樣的:
DECLARE @MediaResurce table (sku varchar(3), CountOf int)
DECLARE @MediaResurce_Pics table (sku varchar(3), ImageName varchar(10))
INSERT @MediaResurce VALUES ('abc',0)
INSERT @MediaResurce VALUES ('mno',0)
INSERT @MediaResurce VALUES ('xyz',0)
INSERT @MediaResurce_Pics VALUES ('abc','a.jpg')
INSERT @MediaResurce_Pics VALUES ('abc','a.gif')
INSERT @MediaResurce_Pics VALUES ('xyz','a.gif')
UPDATE a
SET CountOf=dt.CountOf
FROM @MediaResurce a
INNER JOIN (SELECT
aa.Sku,ISNULL(COUNT(bb.sku),0) AS CountOf
FROM @MediaResurce aa
LEFT OUTER JOIN @MediaResurce_Pics bb ON aa.sku=bb.sku
GROUP BY aa.Sku
) dt ON a.sku=dt.sku
SELECT * FROM @MediaResurce
OUTPUT:
sku CountOf
---- -----------
abc 2
mno 0
xyz 1
(3 row(s) affected)
注:
如果您只需要您的等效@MediaResurce表的@MediaResurce_Pics的計數表,那麼我會強烈考慮用視圖替換等效的@MediaResurce表。它將自動保持同步而不需要觸發器。如果實際需要其他列的等效@MediaResurce表,仍然考慮Count列的視圖。如果您在選擇期間需要額外的速度,您可以實現該列。
表示什麼? – wil 2010-10-14 19:33:49
「a」僅僅是一個表別名:在我的示例代碼中,@MediaResurce的FROM @MediaResurce a'。 – 2010-10-14 19:40:28
所以a是媒體資源,dt是媒體資源圖片? – wil 2010-10-14 19:46:33