2012-06-19 158 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 

參考