我有列的表计数的问题: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