在 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;
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;