2016-07-08 100 views
0

組我有這樣的:嵌套的集合/由

SELECT A.salesperson, A.TDP, A.Units, T.new_target as Target 
FROM 
(
    SELECT a.new_salespersonidname as Salesperson, 
      a.new_salespersonid, 
      SUM(b.new_profits_sales_totaldealprofit) as TDP, 
      COUNT (a.new_dealsheetid) as Units 
    FROM new_dealsheet a 
     LEFT JOIN salesorder B ON a.new_dsheetid = B.salesorderid 
    WHERE MONTH(a.New_actualdate) = 7 
     AND YEAR(a.new_actualdate) = 2016 
     AND a.New_PassedToAdmin = 1 
    GROUP BY a.new_salespersonidname, a.new_salespersonid 
) A 
LEFT JOIN new_salespersontarget T 
    on T.new_salespersonid = A.new_salespersonid 
    AND T.new_month = 7 and T.new_year = 2016 AND T.new_type = 2 
ORDER BY A.TDP desc 

這工作得很好,給我一個月的銷售總額(2016日)與銷售人員一起爲目標的一個月。

我需要這第二個版本,顯示我所有2016年這樣我就可以輕易改變:

WHERE MONTH(a.New_actualdate) = 7 AND YEAR(a.new_actualdate) = 2016 

到:

WHERE YEAR(a.new_actualdate) = 2016 

但是,我可以得到的2016個目標的總和?

感謝

+0

嘗試在外部查詢使用金額和group by .... –

回答

0

只是按

SELECT A.salesperson, sum(A.TDP) as TDP, sum(A.Units) as Units, T.new_target as Target 
FROM 
.... 
LEFT JOIN new_salespersontarget T 
    on T.new_salespersonid = A.new_salespersonid 
     AND T.new_year = 2016 AND T.new_type = 2 
GROUP BY A.salesperson, T.new_target 
ORDER BY ... 
+0

你應該對你的意思了OP解釋。這不僅會讓答案更加清晰,而且對於其他人爲什麼以及在何處使用GROUP BY而感到困惑也很有用。 –