2014-11-05 46 views
1

我正在嘗試做一個8周的銷售報告,但我讀了一定不要用星期('date')=#來避免性能問題。我的計劃是,以獲得最大的一週值,然後從1至。減去7,顯示8周總和爲MySQL 8周的報告

select sum(tot) from venta where week('date') = MAX(week((DATE_FORMAT(STR_TO_DATE(fec, '%d/%m/%Y'), '%Y-%m-%d')) , 0)) -7

任何想法,我該怎麼辦呢?這是我的表格結構和1行,如果需要的話。

id int(255) NO PRI  auto_increment 
can int(11) NO   
tot double NO   
fec varchar(30) NO   
hor varchar(20) NO   
cod_f varchar(10) YES MUL  
per_f varchar(30) YES MUL  
tdt varchar(15) NO   
des double YES    
cdv varchar(15) NO   
cliente varchar(100) YES   
fdc varchar(30) YES   
local varchar(25) NO   

id can tot fec   hor    cod_f per_f tdt des    cdv cliente fdc   local 
1 1 179 10/08/2014 11:10:35 a.m. 1158  D 0 CAMBIO DE PILA 1492 YESENIA 10/08/2014 KCRIS 

回答

1
select sum(tot) 
from venta 
where yearweek(date) between yearweek(curdate() - interval 7 week) 
         and yearweek(curdate())