在 Oracle 中查询(select,使用连接求和和计数)

Query in Oracle(select, sum and count using join)

Table 1 :- 注册 table

Date_phy       |Name      |Address  |Diseases   |Mob    | Advance   |Code
12 March, 2017 |Navneet   |Delhi    |Fever      |12345  | 1000      |2
12 March, 2017 |Ashutosh  |Gurgaon  |fever      |4321   | 2000      |3
12 March, 2017 |Bitu      |Mumbai   |fever      |2345   | 1500      |4
15 March, 2017 |Rashmi    |pune     |fever      |34567  | 1600      |5
16 March, 2017 |komal     |jaipur   |fever      |43215  | 7000      |6

Table 2 :- 出勤率 Table

Code    |Name        |Date_phy
2       |Navneet     |13 March,2017
2       |Navneet     |14 March,2017
2       |Navneet     |15 March,2017
5       |Rashmi      |16 March,2017
6       |komal       |17 March,2017

Table 3:- 存款 Table

Code    |Amount   |Date_phy
2       |1000     |13 March,2017
2       |500      |14 March,2017
2       |500      |15 March,2017
5       |3000     |16 March,2017
6       |5000     |17 March,2017

我想在 oracle 中得到以下输出。

Name     |Date of Joining    |Code  |Total Paid(advance+deposit) |Total Present
Navneet  |12 March,2017      |2     |3000                        |3
Ashutosh |12 March,2017      |3     |2000                        |0
Bitu     |12 March,2017      |4     |1500                        |0
Rashmi   |15 March,2017      |5     |4600                        |1
Komal    |16 March,2017      |6     |12000                       |1

我无法编写查询。我必须将三个 table 与求和和计数函数合并。 尝试了一切但失败了。 你能帮帮我吗?

已尝试查询:

SELECT pr.NAME, 
       pr.date_phy, 
       pr.disease 
FROM   physiofit_registration pr 
       LEFT JOIN (SELECT Sum(amount) totalAmount 
                  FROM   physiofit_amt_deposit 
                  GROUP  BY code) pd 
              ON pr.code = pd.code 
       LEFT JOIN (SELECT Count(*) totalatten, 
                  FROM   physiofit_attendence 
                  GROUP  BY code) pa 
              ON pr.code = pa.code; 

试试下面

SELECT pr.NAME,
       pr.date_phy,
       pr.code,
       pd.totalAmount+pr.advance as TotalPaid,
pa.totalatten as TotalPresent
FROM   physiofit_registration pr
       LEFT JOIN (SELECT code,Sum(amount) totalAmount
                  FROM   physiofit_deposit
           group by code
                  ) pd
              ON (pr.code = pd.code)
          LEFT JOIN (SELECT code,Count(*) totalatten
                  FROM   physiofit_attendence
                  GROUP  BY code) pa
           ON pr.code = pa.code;