我需要获得全面评论。所以我的查询需要选择和计数。这是我的sql。我对 total_comments
有疑问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)
我收到此错误:[错误] ORA-00904:" F"。" CUSTOMID":无效标识符
答案 0 :(得分:1)
您的表CRM_FEEDBACK_COMMENTS
使用CRM_FEEDBACK.rowid
作为外键。由于几个原因,这是糟糕的设计。
ORA-00904:“F”。“CUSTOMID”:标识符无效
您收到此错误消息是因为我们无法将列别名传递给标量游标。要解决原始问题,您需要将CRM_FEEDBACK.rowid
置于CRM_FEEDBACK_COMMENTS.FEEDBACK_ROW_ID
的同一范围内。您可以使用内联视图(即FROM子句中的子查询)执行此操作:
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,
FROM feedback g
left outer join
(SELECT FEEDBACK_ROW_ID, COUNT(*) as total_comments
FROM CRM_FEEDBACK_COMMENTS
group by FEEDBACK_ROW_ID) comm
on chartorowid(comm.FEEDBACK_ROW_ID) = g.ROWID
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)