Изучаем sql


SELECT all_prods.product, all_prods.branch



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

SELECT all_prods.product, all_prods.branch,
> all_prods.name, all_prods.tot_deposits
> FROM
> (SELECT
> (SELECT p.name FROM product p
> WHERE p.product_cd = a.product_cd
> AND p.product_type_cd = 'ACCOUNT') product,
> (SELECT b.name FROM branch b
> WHERE b.branch_id = a.open_branch_id) branch,
> (SELECT CONCAT(e.fname, ' ', e.lname) FROM employee e
> WHERE e.emp_id = a.open_emp_id) name,
> SUM(a.avail_balance) tot_deposits
> FROM account a
> GROUP BY a.product_cd, a.open_branch_id, a.open_emp_id) all_prods
> WHERE all_prods.product IS NOT NULL;
+++++
| 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 | Woburn Branch | Paula Roberts | 3315.77 |
| checking account | Quincy Branch | John Blake | 1057.75 |
| checking account | So. NH Branch | Theresa Markham | 67852.33 |
| 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 | Woburn Branch | Paula Roberts | 700.00 |
| savings account | So. NH Branch | Theresa Markham | 387.99 |
+++++
11 rows in set (0.01 sec)
Теперь, после помещения предыдущего запроса в подзапрос (названный
all_prods
) и добавления условия фильтрации для исключения значений
null
столбца 
product
, запрос возвращает желаемые 11 строк. В итоге по


192
Глава 9. Подзапросы
лучаем запрос, где выполняется группировка только необработанных
данных таблицы 
account
, а затем результат приукрашивается с помо
щью данных из трех других таблиц. И все это 
без всяких соединений
.
Как отмечалось ранее, скалярные подзапросы тоже могут появляться
в блоке 
order
by
. Следующий запрос извлекает данные сотрудников,
отсортированные по фамилиям начальников сотрудников и затем по
фамилиям самих сотрудников:
mysql> 


Достарыңызбен бөлісу:
1   ...   168   169   170   171   172   173   174   175   ...   261




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

    Басты бет