Изучаем sql


Подзапросы, ориентированные на задачи



Pdf көрінісі
бет167/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   163   164   165   166   167   168   169   170   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

Подзапросы, ориентированные на задачи
В системах, используемых для создания отчетов или наборов данных,
часто встречаются следующие запросы:
mysql> 
SELECT p.name product, b.name branch,
> CONCAT(e.fname, ' ', e.lname) name,
> SUM(a.avail_balance) tot_deposits
> FROM account a INNER JOIN employee e
> ON a.open_emp_id = e.emp_id
> INNER JOIN branch b
> ON a.open_branch_id = b.branch_id
> INNER JOIN product p
> ON a.product_cd = p.product_cd
> WHERE p.product_type_cd = 'ACCOUNT'
> GROUP BY p.name, b.name, e.fname, e.lname;
+++++
| product | branch | name | tot_deposits |
+++++
| certificate of deposit | Headquarters | Michael Smith | 11500.00 |
| certificate of deposit | Woburn Branch | Paula Roberts | 8000.00 |
| checking account | Headquarters | Michael Smith | 782.16 |
| checking account | Quincy Branch | John Blake | 1057.75 |
| checking account | So. NH Branch | Theresa Markham | 67852.33 |
| checking account | Woburn Branch | Paula Roberts | 3315.77 |
| money market account | Headquarters | Michael Smith | 14832.64 |
| money market account | Quincy Branch | John Blake | 2212.50 |
| savings account | Headquarters | Michael Smith | 767.77 |
| savings account | So. NH Branch | Theresa Markham | 387.99 |
| savings account | Woburn Branch | Paula Roberts | 700.00 |
+++++
11 rows in set (0.02 sec)


188
Глава 9. Подзапросы
Этот запрос суммирует все остатки депозитных счетов по типу счета,
сотруднику, открывшему счета, и отделениям, в которых были откры
ты счета. Если внимательнее посмотреть на запрос, увидим, что табли
цы 
product

branch
и 
employee
нужны только в целях отображения и что
все необходимое для группировки (
product_cd

open_branch_id

open_emp_id
и 
avail_balance
) есть в таблице 
account
. Поэтому задачу по формирова
нию групп можно было бы выделить в подзапрос, а затем для получе
ния нужного результата соединить остальные три таблицы с табли
цей, сгенерированной подзапросом. Вот подзапрос группировки:
mysql> 


Достарыңызбен бөлісу:
1   ...   163   164   165   166   167   168   169   170   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет