2017-10-05 3 views
0

Dans mon résultat courant sont des lignes suivantes:Union SQL/Fusionner deux lignes DB2

item|val1|val2 
9999|0 |50 
9999|50 |0 

Comment puis-je les fusionner:

9999|50 |50 

Je ne peux pas faire sous-requête basée sur le point, les résultats de chaque requête fournissent une liste d'articles

SQL:############################################ 
select item, sum(val1), 0 as dummy from itemdata 
union 
select item, 0 as dummy, sum(val2) from itemdata2 

Répondre

1

utiliser simplement:

SELECT item, sum(val1), sum(val2) 
FROM table 
GROUP BY item; 

Si vous utilisez plusieurs tables:

SELECT item, sum(val1), sum(val2) 
FROM (SELECT item, val1, 0 AS val2 FROM itemdata 
     UNION ALL 
     SELECT item, 0, val2 FROM itemdata2) sub 
GROUP BY item; 
+0

désolé j'ai oublié que le sql est sur des tables différentes, j'ai changé que ci-dessus – user982998

+0

@ user982998 Bien sûr, vérifier mon modifier – lad2025

+0

@ user982998 Vous pouvez accepter ma réponse ([Comment fonctionne l'acceptation d'une réponse?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)) si votre question a été résolue :) – lad2025