2015-07-21 31 views
0

我有兩個表要從其他表的數量計算平均一個量的差異在一個表中

Table1       &  Table2 
Prod | Reg | O.D | Qty    Prod | Reg | F.d | qty 
p1 | wwq | 4/1 | 10    p1 | wwq | 7/1 | 45 
p1 | wwq | 5/1 | 20    p2 | ewq | 8/1 | 32 
p1 | wwq | 6/1 | 30 
p2 | ewq | 3/1 | 22 

我想借此從平均數量最後兩個記錄旁邊的數量之差(由OD訂購)並顯示差異。

例如。在產品p1的table1中,由O.D排序的最後兩個數量的平均值是(30 +20)/ 2 = 25。而在下一個p1的數量是45. 所以,我想要區別作爲答案。這是45-25 = 20。

進出口新的SQL和我寫了下面

SELECT (select avg(qty) from table1 where order by OD limit 2) - table2.qty 
FROM table1 INNER JOIN table2 
ON table1.prod=table2.prod and table1.reg=table2.reg 
ORDER BY table1.OD; 

督促和reg是超級鍵。

任何幫助將不勝感激。 p.s-對不起(格式)。

+0

請編輯您的問題並以表格格式提供所需的結果。另外,修正你的描述。它有像「在上表」中的東西。什麼是「Prev」? –

回答

0

我猜測你希望表2中的每行有一行,第一個表中的平均值基於兩個表之間的日期比較。在這種情況下,請使用相關子查詢:

select t2.*, 
     (t2.qty - 
     (select avg(t1.qty) 
      from (select t1.* 
       from table1 t1 
       where t1.prod = t2.prod and 
         t1.reg = t2.reg and 
         t1.od <= f2.fd 
       order by t1.od desc 
       limit 2 
       ) t1 
     ) 
    ) as diff 
from table2 t2; 
+0

不,我不希望基於日期的數量差異。我希望基於prod和reg。將table1中的日期視爲過去的日期,將table2視爲未來的日期。日期無關緊要。 – golan

+0

@ user3580779。 。 。這就是這樣做的。儘管如此,你只需要兩個最近的值。 –

相關問題