Sql 计算别名表的行数
这将返回一个错误。如何计算行数?您的错误是:Sql 计算别名表的行数,sql,Sql,这将返回一个错误。如何计算行数?您的错误是: select count (*) from (select a.ACCOUNT_POID_ID0,a.STATUS as moov_profile_status,b.SUB_PLAN_ID,b.PLAN_ID,c.STATUS,c.NAME from VMS_MOOV_PROFILE_T a, VMS_SUB_PLAN_NO_REGEN_T b, VMS_VOUCHER_CONF_T c, where b.ACCOUNT_POID_ID0
select count (*) from
(select a.ACCOUNT_POID_ID0,a.STATUS as moov_profile_status,b.SUB_PLAN_ID,b.PLAN_ID,c.STATUS,c.NAME
from VMS_MOOV_PROFILE_T a,
VMS_SUB_PLAN_NO_REGEN_T b,
VMS_VOUCHER_CONF_T c,
where b.ACCOUNT_POID_ID0 = a.ACCOUNT_POID_ID0
and c.VOUCHER_ID = (select f.VOUCHER_ID from VMS_PLAN_VOUCHER_T f where f.PLAN_ID = b.PLAN_ID));
Try this
SELECT count (*)
FROM (SELECT a.ACCOUNT_POID_ID0,
a.STATUS AS moov_profile_status,
b.SUB_PLAN_ID,
b.PLAN_ID,
c.STATUS,
c.NAME
FROM VMS_MOOV_PROFILE_T a,
VMS_SUB_PLAN_NO_REGEN_T b,
VMS_VOUCHER_CONF_T c
WHERE b.ACCOUNT_POID_ID0 = a.ACCOUNT_POID_ID0
AND c.VOUCHER_ID = (SELECT f.VOUCHER_ID
FROM VMS_PLAN_VOUCHER_T f
WHERE f.PLAN_ID = b.PLAN_ID)) t
此外,连接表的方式(在VMS\u PLAN\u凭证上使用子查询)有点奇怪。您不应该使用20多年前在标准SQL中被取代的旧的逗号分隔联接语法。另外:这里不需要派生表
以下是您的查询:
select count (*) from
(
select a.ACCOUNT_POID_ID0,a.STATUS as moov_profile_status,b.SUB_PLAN_ID,b.PLAN_ID,c.STATUS,c.NAME
from VMS_MOOV_PROFILE_T a,
VMS_SUB_PLAN_NO_REGEN_T b,
VMS_VOUCHER_CONF_T c
where b.ACCOUNT_POID_ID0 = a.ACCOUNT_POID_ID0
and c.VOUCHER_ID = (select f.VOUCHER_ID from VMS_PLAN_VOUCHER_T f where f.PLAN_ID = b.PLAN_ID)
) dummy;
为派生表提供别名
FROM(SELECT…)x
什么错误?您正在使用什么RDBMS?我已经猜到了你的问题是什么,但是由于你把大部分单词都写了一半,而不是试图写出整个单词,所以我不是100%确定。在VMS\u凭证\u CONF\u T c,
后面有一个不正确的逗号,这可能是问题所在。请发布错误消息。
select count (*)
from VMS_MOOV_PROFILE_T a
join VMS_SUB_PLAN_NO_REGEN_T b on b.ACCOUNT_POID_ID0 = a.ACCOUNT_POID_ID0
join VMS_PLAN_VOUCHER_T f on f.PLAN_ID = b.PLAN_ID
join VMS_VOUCHER_CONF_T c on c.VOUCHER_ID = f.VOUCHER_ID;