创建显示具有特定要求的列的视图(虚拟表)

问题描述 投票:0回答:2

因此,我试图建立一个统计视图,该视图对诸如“ PACIENTAS”表中的用户数量,“ GYDYTOJAS”表中的医生数量等各种事物进行统计。

   CREATE OR REPLACE FORCE VIEW "NEW" ("PACIENTU SKAIČIUS DUOMENŲ BAZĖJE", "PACIENTAI    UŽSIREGISTRAVĘ VIZITUI", "LIGONINIU SKAICIUS", "GYDYTOJU SKAIČIUS", "ŠIO MENESIO REGISTRACIJOS")   AS 
   SELECT(
   SELECT COUNT(*) FROM   PACIENTAS) AS VISIPACIENTAI,
  (SELECT COUNT(*) FROM   REGISTRACIJA) AS REGPACIENTAI,
  (SELECT COUNT(*) FROM  LIGONINE) AS VISOSLIGONINES,
  (SELECT COUNT(*) FROM  GYDYTOJAS) AS VISIGYDYTOJAI,
  (SELECT COUNT(*) FROM  REGISTRACIJA)  AS REGISTRACIJA
  FROM dual
  /

Counts how many columns are in table

但是我只想计算满足指定条件的列

   CREATE OR REPLACE FORCE VIEW "NEW" ("PACIENTU SKAIČIUS DUOMENŲ BAZĖJE", "PACIENTAI   UŽSIREGISTRAVĘ VIZITUI", "LIGONINIU SKAICIUS", "GYDYTOJU SKAIČIUS", "ŠIO MENESIO REGISTRACIJOS") AS  
   SELECT(
   SELECT COUNT(*) FROM   PACIENTAS) AS VISIPACIENTAI,
   (SELECT COUNT(*) FROM   REGISTRACIJA) AS REGPACIENTAI,
   (SELECT COUNT(*) FROM  LIGONINE) AS VISOSLIGONINES,
   (SELECT COUNT(*) FROM  GYDYTOJAS) AS VISIGYDYTOJAI,
   (SELECT COUNT(*) FROM  REGISTRACIJA)  AS REGISTRACIJA
   FROM dual
   WHERE ASMENSKODAS > 10  //ASMENSKODAS is a collum from PACIENTAS TABLE
   /

[当我编写此代码时,我得到“ ORA-00904:” PACIENTAS“:无效的标识符”,我想也许我需要在计数括号中写上我的条件,但是我不知道如何,因为我被卡住了,所以我需要一些想法。

sql oracle view count where-clause
2个回答
0
投票

这样做吧

CREATE OR REPLACE FORCE VIEW "NEW" ("PACIENTU SKAIČIUS DUOMENŲ BAZĖJE", "PACIENTAI   UŽSIREGISTRAVĘ VIZITUI", "LIGONINIU SKAICIUS", "GYDYTOJU SKAIČIUS", "ŠIO MENESIO REGISTRACIJOS") AS  
   SELECT(
   SELECT COUNT(*) FROM   PACIENTAS WHERE ASMENSKODAS > 10) AS VISIPACIENTAI,
   (SELECT COUNT(*) FROM   REGISTRACIJA) AS REGPACIENTAI,
   (SELECT COUNT(*) FROM  LIGONINE) AS VISOSLIGONINES,
   (SELECT COUNT(*) FROM  GYDYTOJAS) AS VISIGYDYTOJAI,
   (SELECT COUNT(*) FROM  REGISTRACIJA)  AS REGISTRACIJA
   FROM dual
     //ASMENSKODAS is a collum from PACIENTAS TABLE
   /

0
投票

如果您引用PACIENTAS表中的一列(即ASMENSKODAS),则该列必须在查询中“可见”,所以-也许您打算使用我在下面发布的内容。

此外,我强烈建议您不要像以前那样命名列。永远不要在Oracle中使用双引号,因为您每次都必须像创建视图时一样完全引用这些列,要注意字母大小写,(单词之间的(空格)太多)空格等。方式;为了报告目的,请随时命名。

create or replace view new
  (visipacientai, regpacientai, visosligonines, visigydytojai, registracija)
as
SELECT(
       (SELECT COUNT(*) FROM PACIENTAS
        WHERE ASMENSKODAS > 10
       ) AS VISIPACIENTAI,
       --
       (SELECT COUNT(*) FROM  REGISTRACIJA) AS REGPACIENTAI,
       (SELECT COUNT(*) FROM  LIGONINE)     AS VISOSLIGONINES,
       (SELECT COUNT(*) FROM  GYDYTOJAS)    AS VISIGYDYTOJAI,
       (SELECT COUNT(*) FROM  REGISTRACIJA) AS REGISTRACIJA
FROM dual;
© www.soinside.com 2019 - 2024. All rights reserved.