Выбор запросов объединяет или группирует по - PullRequest
0 голосов
/ 03 мая 2019

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

```` Create table patient (
```` Patient_ID Number(9) primary key,
```` First_name varchar2(15),
```` Last_name varchar2(10),
```` Contact number(10),
```` City varchar2(20),
```` Doctor_ID Number(9) references Doctor(Doctor_ID));

This is the payment table 
````Payment_ID Number(9) primary key,
````Amount Number(10),
````Pyt_Date Date,
````Method varchar2(15),
````PatientID Number(9) references Patient(Patient_ID));

This is the bill table
````Bill_ID Number(9) primary key,
````Status char(10),
````Amount_paid varchar(30),
````Amount_NotPaid varchar(30),
````PatientID Number(9) references Patient(Patient_ID));

This is the query I wrote but it's not working

```` select p.First_name "Patient", Status, method, Amount_paid
```` from patient p and payment on bill 
```` where p.Firstname = status, method = amount_paid
```` group by p.First_name, status, method, amount_paid;

1 Ответ

0 голосов
/ 04 мая 2019

Написанный вами запрос не является синтаксически действительным.Вы писали:

select p.First_name "Patient", Status, method, Amount_paid
  from patient p and payment on bill 
  where p.Firstname = status, method = amount_paid
  group by p.First_name, status, method, amount_paid

У вас есть предложение AND в предложении FROM, где это не разрешено, и вы пропускаете предложение AND в предложении WHERE, где это необходимо:

select p.First_name "Patient", b.Status, b.method, b.Amount_paid
  from patient p,
       bill b
  where p.Firstname = b.status AND
        b.method = b.amount_paid
  group by p.First_name, b.status, b.method, b.amount_paid

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

Возможно, вы имели в виду

SELECT p.FIRST_NAME, b.STATUS, y.METHOD, b.AMOUNT_PAID
  FROM PATIENT p
  INNER JOIN BILL b
    ON b.PATIENTID = p.PATIENT_ID
  INNER JOIN PAYMENT y
    ON y.PATIENTID = p.PATIENT_ID

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...