2017-12-23 42 views
2

私はsum of counts of different columns of same table へのフォローアップの質問を持っています。別のテーブル(B)のフィールド(Z)選択クエリの結果(A.COUNT_TOTAL):テーブル内のフィールドを更新し、他のテーブルから選択した結果を

SELECT A.ID, SUM(A.COUNTS) AS COUNT_TOTAL 
FROM 
(
SELECT X AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY X 
UNION ALL 
SELECT Y AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY Y 
) A 
GROUP BY A.ID 
ORDER BY A.ID;` 

私は、次のステートメントを試してみました(しかし、あいまいなエラーメッセージが表示されます):

UPDATE B 
    INNER JOIN (
    SELECT A.ID, SUM(A.COUNTS) AS COUNT_TOTAL 
    FROM 
    (
    SELECT X AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY X 
    UNION ALL 
    SELECT Y AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY Y 
    ) A 
    GROUP BY A.ID) as A on B.ID = A.ID 
    SET B.Z = A.COUNT_TOTAL 
+0

曖昧なエラーはありますか? – CGritton

答えて

0

あなたがambiguos(とエイリアスAへの誤った参照を持っています。異なる別名に同じ名前を2回使用しています) 異なるサブクエリに異なる別名を使用してみてください。例:

UPDATE B 
    INNER JOIN (
    SELECT A.ID, SUM(A.COUNTS) AS COUNT_TOTAL 
    FROM 
    (
    SELECT X AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY X 
    UNION ALL 
    SELECT Y AS ID, COUNT(*) AS COUNTS FROM TABLE1 GROUP BY Y 
) A 
    GROUP BY A.ID) T on B.ID = T.ID 
    SET B.Z = T.COUNT_TOTAL 
+0

ありがとう、これは完全に働いた! –

関連する問題