【发布时间】:2018-05-07 13:54:13
【问题描述】:
我只需要得到总 cmets。所以我的查询需要选择和计数。这是我的sql。我对 total_cmets
有疑问SELECT customid,
dt,
customer_name,
e_mail,
phone,
TYPE,
message,
crm_status_id,
total_comments
FROM (SELECT f.ROWID AS customid,
f.dt AS d,
To_char(f.dt, 'YYYY-MM-DD HH24:MI:SS') AS dt,
f.first_name
|| ' '
|| f.middle_name
|| ' '
|| f.last_name AS customer_name,
f.e_mail,
f.phone,
Decode(f.feedback_type, 'CALLBACK', 'CALLBACK',
'FEEDBACK') AS TYPE,
f.feedback_message AS message,
f.crm_status_id AS crm_status_id,
(SELECT COUNT(*) FROM CRM_FEEDBACK_COMMENTS WHERE CRM_FEEDBACK_COMMENTS.FEEDBACK_ROW_ID = f.customid) as total_comments
FROM crm_feedback f
UNION ALL
SELECT g.ROWID AS customid,
create_date AS d,
To_char(create_date, 'YYYY-MM-DD HH24:MI:SS') AS dt,
c.customer_name1 AS customer_name,
p.email,
p.phone,
'MOBILSHOBE FEEDBACK' AS TYPE,
g.message_body AS message,
g.crm_status_id AS crm_status_id,
(SELECT COUNT(*) FROM CRM_FEEDBACK_COMMENTS WHERE FEEDBACK_COMMENTS.FEEDBACK_ROW_ID = g.customid) as total_comments
FROM feedback g
inner join sttm_customer@fcc_dblink c
ON c.customer_no = g.customer_no
inner join pg2_customer@fcc_dblink p
ON p.cif = g.customer_no)
我收到此错误:[Err] ORA-00904: "F"."CUSTOMID": invalid identifier
【问题讨论】:
-
也许使用 f.rowID 而不是 f.customID?执行该行时,customID 别名尚不存在。就我个人而言,我会加入一个包含 row_ID 计数的派生表,所以我对所有 row_ID 进行一次计算,而不是每个行 ID 计算一次。 MySQL 可能允许您引用先前在同一记录上使用的别名;我不相信 oracle 会这样做。