У меня есть таблица с именем область, имеющие две колонок: наличие region_id является первичным ключомMySql StoredProcedure с внутренним соединением
|region_id | region_code |
| ----------+-------------+
| 1 | Asia |
| 2 | Can |
| 3 | Cen |
| 4 | West |
| 5 | GNW |
----------+-------------+
И у меня есть еще один сотрудник таблицы, в которой emp_id является первичный ключ и region_id_fk является внешним ключом отображается в область таблицы:
+------+---------+---------+------------+---------------+---------+------------
|emp_id| emp_name|global_id|region_id_fk|attendance_date|ispresent| is_billable|
+------+---------+---------+------------+---------------+---------+---------
| 1 | andrew | candrew | 1 | 2017-02-13 | 1 | 1 |
| 2 | andrew | candrew | 1 | 2017-02-14 | 1 | 1 |
| 3 | andrew | candrew | 1 | 2017-02-15 | 1 | 1 |
| 4 | andrew | candrew | 1 | 2017-02-16 | 1 | 1 |
| 5 | andrew | candrew | 1 | 2017-02-17 | 0 | 1 |
| 6 | simon | csimon | 1 | 2017-02-13 | 1 | 1 |
| 7 | simon | csimon | 1 | 2017-02-14 | 1 | 1 |
| 8 | simon | csimon | 1 | 2017-02-15 | 1 | 1 |
| 9 | simon | csimon | 1 | 2017-02-16 | 1 | 1 |
| 10 | simon | csimon | 1 | 2017-02-17 | 1 | 1 |
| 11 | peter | cpeter | 2 | 2017-02-13 | 1 | 1 |
| 12 | peter | cpeter | 2 | 2017-02-14 | 1 | 1 |
| 13 | peter | cpeter | 2 | 2017-02-15 | 1 | 1 |
| 14 | peter | cpeter | 2 | 2017-02-16 | 1 | 1 |
| 15 | alvin | calvin | 2 | 2017-03-13 | 1 | 0 |
| 16 | thomas | thomas | 2 | 2017-03-14 | 0 | 1 |
| 17 | samuel | csamuel | 2 | 2017-03-15 | 1 | 0 |
| 18 | jackson | cjackson| 2 | 2017-03-16 | 1 | 0 |
| 19 | clinda | clinda | 2 | 2017-03-17 | 1 | 1 |
+--------+----------+-----------+--------------+-----------------+------
у меня уже есть этот тип запроса, в котором я использовал внутреннее соединение и считать в хранимой процедуре:
DELIMITER $$
DROP PROCEDURE IF EXISTS test.some_proc $$
CREATE PROCEDURE test.some_proc(IN in_is_billable INT,IN in_month INT,IN in_ispresent INT)
BEGIN
DECLARE capacitycount INT;
DECLARE hrs INT;
SET hrs=8;
SELECT COUNT(ispresent)*8 AS team_capacity, region_code
FROM employee emp
INNER JOIN region r ON r.region_id=emp.region_id_fk
WHERE (is_billable=in_is_billable) AND
(MONTH(attendance_date)=in_month) AND
(ispresent=in_ispresent);
END $$
DELIMITER ;
И его давая мне ниже результат: команда емкость | region_code 128 | Азия
Я хочу, чтобы моя хранимая процедура, чтобы дать всю область код, присутствующий в области таблицы вместе с мощностью команды, которая IM вычисления в хранимой процедуре, которая дает мне правильный ответ.
Результат должен быть таким, но на данный момент я получаю только способность команды только для одного региона.
team capacity|region_code
128 |Asia
39 |Can
68 |Cen
Любая помощь будет оценена, Заранее спасибо :)
Спасибо большое, теперь получаю правильный ответ @Ankit Агроэл –
Accept этот ответ. Это будет полезно для других, чтобы избавиться от своих проблем –