2017-02-15 9 views
0

に参加します領域テーブル:私はすでに私は、内側がストアドプロシージャに参加して、カウントを使用クエリのこのタイプを持っているのMySQLのStoredProcedureは、私は2つの列を持つテーブルという名前の領域を有する

 +------+---------+---------+------------+---------------+---------+------------ 
    |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私は正解です。

このような結果が得られるはずですが、今のところ私はチームのキャパシティを1つの地域に限定しています。

team capacity|region_code 
    128   |Asia 
    39   |Can 
    68   |Cen 

すべてのヘルプは、事前に 感謝を理解されるであろう:)

答えて

0

あなたの構文で

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) 
     group by r.region_code; 
END $$ 
DELIMITER ; 
+0

おかげでたくさんしてグループを逃し、今答え@Ankit Agrawalさんに –

+0

受け入れを取得メートルこの答え。それは彼らの問題を取り除くために他人に役立つだろう –

関連する問題