MySql除以之间的每一行之间的总和和另一个表中的每周之和

时间:2017-08-29 05:29:26

标签: mysql

我有两个表,表A和表B

 Table A Structure
 ItemCode   Amount         DatebyDay
 01         1000           20170821
 01         1000           20170822
 01         1000           20170823
 01         1000           20170824
 01         1000           20170825
 ...
 02         2000           20170821
 02         2000           20170822
 02         2000           20170823
 02         2000           20170824 
 02         2000           20170825
 ...
 03
 ...

 Table B Structure
 FieldCode   Amount         DatebyDay
 fd        10000          20170821
 fd        10000          20170822
 fd        10000          20170823
 fd        10000          20170824
 fd        10000          20170825
 fd        10000          20170826
 ...

我希望有一个SQL可以1.按周计算每个项目的金额。 2.按周计算字段fd的数量。 3.在同一周将1值除以2值。 我的预期结果是

 WeekNum  ItemId  DividedResult
 33
 34         01     0.1                      //(1000*5)/(10000*5)
 34         02     0.2                      //(2000*5)/(10000*5)  
 34         03     ...
 35

先谢谢你!

1 个答案:

答案 0 :(得分:0)

SELECT WEEK(DatebyDay),SUM(A.Amount),SUM(B.Amount),SUM(A.Amount)/SUM(B.Amount) FROM TABLEA A
INNER JOIN TABLEB B ON A.ItemCode=SUBSTR(B.FieldCode,3,LENGTH(B.FieldCode)) AND A.DatebyDay=B.DatebyDay
GROUP BY WEEK(DatebyDay);

您可以尝试以上代码。

注意:我在考虑这两个表是相互关联的,例如 ItemCode FieldCode