1

我正在使用sybase。

我有两个这样的表:

USER | HITS
------------
 A   |  2
 B   |  1
 C   |  4
 E   |  3


USER | HITS
------------
 A   |  2
 B   |  8
 C   |  1
 D   |  2

我想在 USER 和 SUM HITS 列上组合它们以获得如下结果:

USER | HITS
------------
 A   |  4
 B   |  9
 C   |  5
 D   |  2
 E   |  3

我能够使用以下查询将它们部分组合:

select a.USERNAME, sum(a.HITS+b.HITS)
from table1 a, table2 b
where a.USERNAME=b.USERNAME
group by a.USERNAME

我不知道该怎么做才能获得我想要的整个数据集......我在尝试使用 JOIN 或 UNION 时遇到了麻烦......请帮助:)

4

3 回答 3

4

尝试这个:

SELECT USER, SUM(HITS) HITS
FROM
(SELECT USER, HITS
FROM Tbl1 UNION ALL
SELECT USER, HITS
FROM Tbl2) A
GROUP BY USER
于 2013-09-16T20:13:03.400 回答
1

不确定 Sybase 是否有with,如果没有,您可以按照 Hamlet 的解决方案嵌套子查询。

;with x (user, hits) as (
    select
        user, hits
    from
        table1
    union all
    select
        user, hits
    from
        table2
)
select
    user,
    sum(hits) as hits
from
    x
group by
    user;
于 2013-09-16T20:13:43.483 回答
0

你没有得到什么样的结果?试试这个,我更喜欢这种格式,因为它很容易阅读

select a.USERNAME, sum(a.HITS+b.HITS) from table1 a Inner join table2 b On a.username = b.username group by a.USERNAME

于 2013-09-16T20:13:45.907 回答