2015-08-28 65 views
0

預計輸出:需要打印4季度wage_amt註冊:支持,以儘量減少查詢擊中多次

+--------------+--------------+--------------+--------------+ 
| wages_amt_q1 | wages_amt_q2 | wages_amt_q3 | wages_amt_q4 | 
+--------------+--------------+--------------+--------------+ 
| 108   | 100   | 18   | 128   | 
+--------------+--------------+--------------+--------------+ 

電流輸出:拉從工作表中的所有作業ID,創建循環通過每個作業ID在在下面的查詢中,執行4次獲得4個季度值。

SELECT AVG(工資)從工資wages_amt_q1其中JOB_ID = 73和 DATE_ID在(從wages_date選擇DATE_ID其中四分之一= 1和年 = 2015)由組JOB_ID;

+--------------+ 
| wages_amt_q1 | 
+--------------+ 
| 108   | 
+--------------+ 
1 row in set (0.01 sec) 

做必要的全力支持,以儘量減少查詢擊中多次。

回答

1

您可以通過下面的查詢得到每季度工資:

SELECT `wages_date`.`quarter`,`wages_date`.`year`,avg(`wages`.`wages`) 
FROM `wages` 
LEFT JOIN `wages_date` ON `wages_date`.`date_id`=`wages`.`date_id` 
WHERE (`job_id` = 73) 
GROUP BY `wages_date`.`quartner`,`wages_date`.`year`; 
+0

真棒! 40分鐘改爲10分鐘 – Bharanikumar