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));
  • 你忘了告诉我们你收到了什么错误信息
  • 你忘了告诉我们你在用什么数据库管理系统
  • 在表别名c后面有一个逗号
  • 根据dbms的不同,您可能还需要派生表的名称(即在右括号后添加一些伪名称)
  • 更正的查询是:

    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;