0

不断收到我的 sql 查询中缺少关键字的反馈。

select sum(transaction_amnt) 
from cs339.comm_to_cand 
join cs339.committee_master 
join cs339.cmte_id_to_geo 
    on cs339.committee_master.cmte_id=cs339.comm_to_cand.cmte_id 
    and cs339.committee_master.cmte_id=cs339.cmte_id_to_geo.cmte_id 
where cycle=1112 
    and cmte_pty_affiliation='DEM';

如果有人可以帮助我,我将不胜感激。

4

4 回答 4

2

您第一次加入时错过了ON- 我也为此添加了一些别名:

select sum(transaction_amnt) Total
from cs339.comm_to_cand cc
join cs339.committee_master cm
  on cm.cmte_id=cc.cmte_id 
join cs339.cmte_id_to_geo cg
    on cm.cmte_id=cg.cmte_id 
where cycle=1112 
    and cmte_pty_affiliation='DEM';
于 2012-10-22T22:21:41.117 回答
1

第一次加入后没有“开”条件

尝试这个:

select sum(transaction_amnt) 
from cs339.comm_to_cand 
join cs339.committee_master 
          on cs339.committee_master.cmte_id=cs339.comm_to_cand.cmte_id 
join cs339.cmte_id_to_geo     
    on cs339.committee_master.cmte_id=cs339.cmte_id_to_geo.cmte_id 
where cycle=1112 
    and cmte_pty_affiliation='DEM';
于 2012-10-22T22:20:40.983 回答
0

好吧,我不知道这是否属实,但我的理解是您需要在每次加入时提供“粘合剂”,所以应该是这样的。

从 cs339.committee_master.cmte_id=cs339.comm_to_cand.cmte_id 从 cs339.committee_cand 中选择 sum(transaction_amnt) 并加入 cs339.committee_master 在 cs339.committee_master.cmte_id=cs339.committee_master.cmte_id=cs339.cmte_id_to_geo.cmte_pid 上的 cs339.cmte_id_to_geo 和 cmte_affiliation= ';

此外,WHERE 子句上的列应该有他们的表父命名,所以如果循环和 cmte_pty_affiliation 列属于 cs339.comm_to_cand 它应该是

其中 cs339.comm_to_cand.cycle=1112 和 cs339.comm_to_cand.cmte_pty_affiliation='DEM';

于 2012-10-22T22:24:46.537 回答
0

我不是 Oracle 开发人员,但第一个JOIN是缺少ON条件。

于 2012-10-22T22:22:14.847 回答