龙蟒过江只为虫 2018-11-02 01:39 采纳率: 50%
浏览 594
已采纳

ORACLE两表关联查询,求助。

模拟表结构

CREATE TABLE a (aid VARCHAR2(5), acou NUMBER(5, 2));
CREATE TABLE b (aid VARCHAR2(5), bcou NUMBER(5, 2));

模拟数据
INSERT INTO a (aid, acou) VALUES ('1', 50.0);
INSERT INTO b (aid, bcou) VALUES ('1', 30.0);
INSERT INTO b (aid, bcou) VALUES ('1', 40.0);

查询语句
SELECT ' ', SUM(acou) acou, SUM(bcou) bcou FROM a, b WHERE a.aid = b.aid;

错误结果集
' ', 100, 70

如何编写SQL语句正确分别统计两表的和,正确结果集应为
' ',50, 70

  • 写回答

2条回答 默认 最新

  • qq_14823253 2018-11-02 01:52
    关注

    表关系给的不够详细,如果一定要A|B关联,按照你目前的表结构,可能无法实现你的要求
    如果想要满足你的要求,至少需要一个主键

    那这样

     SELECT ' ', SUM(ACOU) ACOU, SUM(BCOU) BCOU
      FROM (SELECT A.AID, A.ACOU, SUM(B.BCOU) BCOU
              FROM A, B
             WHERE A.AID = B.AID
             GROUP BY A.AID, A.ACOU);
    

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?