我正在运行以下查询并且模糊地定义了列:
SELECT
S.SUB_ID
,M.FLEETID
,M.TGID
,M.TGNO
,R.TGTYPE
,R.MODEID
,COUNT(1)
FROM
INF_SUBSCRIBER_ALL S
INNER JOIN
INF_TALKGROUP_MEMBER M ON S.SUB_ID = M.SUBID
INNER JOIN
INF_TALKGROUP_MODE_RELATION R ON M.TGID = R.TGID
INNER JOIN
INF_TALKGROUP_MODE_RELATION R ON M.FLEETID = R.FLEETID
WHERE
S.SUB_STATE = 'B01'
AND M.STATUS = 'M01'
GROUP BY
S.SUB_ID, M.FLEETID, M.TGID, M.TGNO, R.TGTYPE, R.MODEID;
答案 0 :(得分:0)
您已使用别名 - R
两次,这就是错误
您不需要在JOIN中包含两次表格,以添加另一个condition
(M.FLEETID = R.FLEETID
),
您可以使用AND
运算符在第一个出现itselt时给出相应的条件。
SELECT
S.SUB_ID
,M.FLEETID
,M.TGID
,M.TGNO
,R.TGTYPE
,R.MODEID
,COUNT(1)
FROM
INF_SUBSCRIBER_ALL S
INNER JOIN
INF_TALKGROUP_MEMBER M ON S.SUB_ID = M.SUBID
INNER JOIN
INF_TALKGROUP_MODE_RELATION R ON M.TGID = R.TGID AND M.FLEETID = R.FLEETID
WHERE
S.SUB_STATE = 'B01'
AND M.STATUS = 'M01'
GROUP BY
S.SUB_ID, M.FLEETID, M.TGID, M.TGNO, R.TGTYPE, R.MODEID;
希望这有帮助。