2012-06-19 204 views
0

我有一张供应商和产品表格。我需要删除供应商,然后将所有产品及其数量添加到其他供应商。例如SQL查询的烦恼

表供应商。我删除供应商1个

sup1 idsup1 
sup2 idsup2 
sup3 idsup3 

表产品(IDPR - 外键)。

idpr1 amount1 idsup1 
idpr1 amount2 idsup3 
idpr1 amount3 idsup2 
idpr2 amount4 idsup2 

我需要补充的supplier1产品全部量supplier2所以这个表会是这样

idpr1 amount2 idsup3 
idpr1 amount3+amount1 idsup2 
idpr2 amount4 idsup2 

但如何做到这一点?我不明白如何总结所有产品具有相同的idpr。我用idsup1为所有记录设置了idsup2。但还有另一种方式吗?

+2

这发动机是你用的G?另外,请提供确切的描述结果 – Sebas

+1

我相信,您需要在UPDATE语句的SET子句的RHS中执行子查询来完成此操作。然而,第一步是编制能够给你正确答案的SELECT语句。有了这个,你可以开发UPDATE语句。 –

回答

0

我不明白如何总结具有相同idpr的所有产品。

SUM功能使用子查询的WHERE子句与列名,如在这个例子中:

SELECT 'site://tags/' + TargetTagName + '/synonyms|' + TargetTagName AS [VOTE4ME], Count(SourceTagName) AS [SYNONYMS] 
FROM TagSynonyms TS 
WHERE 
ApprovalDate IS NULL 
AND 
(SELECT SUM(
CASE V.VoteTypeId 
WHEN 2 THEN 1 
WHEN 3 THEN -1 
END) 
FROM TAGS T, PostTags Pt, Posts P, Votes V, VoteTypes Vt 
WHERE T.Id = Pt.TagId 
AND P.Id = V.PostId 
AND Pt.PostId = P.ParentId 
AND Vt.Id = V.VoteTypeId 
AND T.TagName = TargetTagName 
AND P.OwnerUserId = ##userid## 
AND P.CommunityOwnedDate IS NULL 
) > 4 
GROUP BY TargetTagName 

参考