Создание представления (виртуальной таблицы), в котором отображаются столбцы с конкретными требованиями - PullRequest
0 голосов
/ 11 декабря 2019

Итак, я пытаюсь создать статистическое представление, которое подсчитывает различные вещи, например, сколько пользователей в таблице называется «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
  /

Подсчитывает, сколько столбцов в таблице

Но я хочу сосчитать только столбцы, которые удовлетворяют указанному условию

   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 column from PACIENTAS TABLE
   /

Когда я пишу этот код, я получаю ошибку

ORA-00904: "PACIENTAS ": неверный идентификатор

Я думаю, может быть, мне нужно написать свое условие в скобках, но я не знаю как, мне нужны идеи, потому что я застрял.

1 Ответ

0 голосов
/ 11 декабря 2019

Сделай вот так

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 column from PACIENTAS TABLE
   /
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...