Member 13487285 Ответов: 1

Создание представления с помощью базы данных oracle


Пожалуйста, как мне создать представление, которое будет давать общую сумму расходов для данного пациента в данный день для данного врача за первый квартал(с 1 января по 31 марта 2016 года). Вывод представления должен быть дан.

Что я уже пробовал:

Я попытался выбрать Дид у доктора,
Выберите PID от пациента,
Выберите n из назначения, где n > = 01-Jan-16 и < = 31-MAR-16
И СБОРЫ НЕ В (ВЫБЕРИТЕ ОТДЕЛЬНЫЕ СБОРЫ ОТ ЛЕЧЕНИЯ);

затем я использую команду view как:
Создать представление totalcharge как SELECT query
Выберите PID, DID, дату, сборы от лечения;

Santosh kumar Pithani

Здесь вы не упомянули никаких отношений на столах.я думаю,что вы спрашиваете, есть ли дополнительные сборы, собранные врачом с пациентов, которые были в первом квартале?

1 Ответов

Рейтинг:
2

Santosh kumar Pithani

             ---#DOCTOR Table ---
CREATE TABLE #Doctor(
              DID INT,PID INT,DNAME VARCHAR(50));
INSERT INTO #Doctor 
              VALUES(1215,1209,'harish'),(1234,1261,'Saikiran'),
                    (1245,1271,'satish'),(1246,1214,'Santoshkumar'); 

          ------#patient TABLE ---
CREATE TABLE #patient (
             PID INT,P_name VARCHAR(50),APMID INT,charges MONEY DEFAULT 500);
INSERT INTO #patient 
             VALUES(1271,'satya',1,2000),(1261,'masthan',2,500),
                   (1209,'Varma',3,500),(1214,'sree',4,600);

           ------#AppointMent Table -----

CREATE TABLE #AppointMent(
                    APMID  INT,APMDATE DATE,DID INT)

INSERT INTO #AppointMent 
                 VALUES(3,'21/MAR/2017',1215),(2,'03/JUL/2017',1234),
                       (1,'05/JAN/2017',1245),(4,'08/FEB/2017',1246)

                  ----Create View on Below Query ----

 SELECT  #PATIENT.PID, #DOCTOR.DID,#APPOINTMENT.APMDATE,SUM(#PATIENT.charges)as charges 
      FROM  #DOCTOR inner join #PATIENT ON(#DOCTOR.PID=#PATIENT.PID) 
       inner join #APPOINTMENT 
       ON(#APPOINTMENT.APMID=#PATIENT.APMID)and(#APPOINTMENT.DID=#Doctor.DID) 
       WHERE APMDATE> ='01-JAN-2017' and APMDATE< ='31-MAR-2017' 
       GROUP BY  #PATIENT.PID,#DOCTOR.DID,#APPOINTMENT.APMDATE
       HAVING SUM(#PATIENT.charges)<>(select 500 as TREATMENTCHARGES);
--------------------------------
PID	DID	APMDATE	charges
--------------------------------
1214	1246	2017-02-08	600.00
1271	1245	2017-01-05	2000.00