2014-01-27 2 views
0

내 목표는 id, revenue (계산) 및 year 인 세 개의 열로보기를 만드는 것입니다. 나는 idrevenue을 얻을 수 있습니다. 그러나 내 날짜 열은 varchar 형식입니다.보기를 만드는 중 SQL 문

어떻게해야할지 모르겠다.

SELECT DISTINCT 
    id, 
    SUM(fborders.quantity * fbmenu.fbMenuUnitPrice) as revenue 
FROM 
    fb.fborders 
     INNER JOIN 
    fb.fbmenu ON fborders.fbMenuId = fbmenu.fbMenuId 
WHERE 
    date = (SELECT 
      YEAR(STR_TO_DATE(date, '%d/%m/%Y')) 
     from 
      fb.fborders 
     WHERE 
      YEAR(STR_TO_DATE(date, '%d/%m/%Y')) = '2011' 
       OR YEAR(STR_TO_DATE(date, '%d/%m/%Y')) = '2012' 
       OR YEAR(STR_TO_DATE(date, '%d/%m/%Y')) = '2013') 
GROUP BY id 

내 출력 :

 
id | revenue | year 
_______________________ 
R1 | 100  | 2011 
R1 | 999  | 2012 
R1 | 832  | 2013 
R2 | 323  | 2011 
R2 | 318  | 2012 
R2 | 111  | 2013 
R3 | 432  | 2011 
R3 | 342  | 2012 
R3 | 873  | 2013 

답변

0

만약 내가 제대로 이해하고, 당신이 정말로 원하는 것은 그룹이 올해에하는 것입니다 :

SELECT DISTINCT 
    id, 
    SUM(fborders.quantity * fbmenu.fbMenuUnitPrice) as revenue, 
    YEAR(STR_TO_DATE(date, '%d/%m/%Y')) as year 
FROM 
    fb.fborders 
     INNER JOIN 
    fb.fbmenu ON fborders.fbMenuId = fbmenu.fbMenuId 
GROUP BY 
    id, 
    YEAR(STR_TO_DATE(date, '%d/%m/%Y')) 
다음은 내 SQL 문입니다