0

嗨,我有创建 SQL 的问题。我有这样的表格和数据:

id 月 年 id_type 数量
1 10 2012 1 5
2 10 2012 2 4
3 10 2012 3 3
4 10 2012 4 5
5 11 2012 1 1
6 11 2012 2 2
7 12 2012 1 3
8 12 2012 2 2

我想创建 SQL 来生成这样的数据

id_type 月 年 数量 month_b4 year_b4 qty_b4
  1 10 2012 5 9 2012 0
  2 10 2012 4 9 2012 0        
  3 10 2012 3 9 2012 0        
  4 10 2012 5 9 2012 0        
  1 11 2012 1 10 2012 5
  2 11 2012 2 10 2012 4
  1 12 2012 1 11 2012 1                
  2 12 2012 2 11 2012 2
4

1 回答 1

0

此查询将执行此操作:

select 
  sales.id_type as id_type,
  sales.month as month,
  sales.year as year,
  sales.qty as qty,
  prev.month as month_b4,
  prev.year as year_b4,
  prev.qty as qty_b4
from 
  sales,
  sales as prev
where
  sales.id_type = prev.id_type and
  ((sales.month=1 and prev.month=12 and prev.year=sales.year-1) or 
     prev.month = sales.month - 1);

我也把它放在一个小提琴上,您可以在其中进行试验: http ://sqlfiddle.com/#!2/ed3af/14

于 2012-12-01T00:51:08.527 回答