2013-10-10 77 views
1

我需要爲員工屬於某個部門的每一天選擇一筆數據總和,我希望能夠選擇一個日期範圍並且每天都有一個摘要,這是可能的,此刻我是隻需在一個字段中獲取整個日期範圍的摘要。SELECT SUM mysql

這是我此刻的

select 
    date, 
    SUM(no_of_live_products) 
from 
    fulfilment 
INNER JOIN 
    employee 
    ON employee.employee_id = fulfilment.employee_id 
where 
     employee.department = 'Telecoms Services' 
    and date >= '2013-09-16' 
    and date <= '2013-09-29' 

查詢是有可能得到的數據彙總該日期範圍或沒有內每天的?

+1

看起來像你應該添加GROUP BY。 –

+0

通常,您不能返回不存在的數據。在MySQL中有一些欺騙手段,但通常最好是在'應用程序級'處理應用程序級別的邏輯。 – Strawberry

+0

歡呼@XLAnt那工作的一種享受 – Crouch

回答

2

可以

GROUP BY `date` 

看每一天的總和

+1

你的生活保護者可以在未來派上用場!我會盡快讓你的答案接受答案 – Crouch

1

如果你想獲得的天數,你有幾個時間段,

首先,獲取日期的編號爲單個時間範圍,然後總結這些了(需要一個子查詢)。

拿這個作爲一個例子,它不適合你的情況完整的查詢:

SELECT SUM(x.days) 
FROM (
    SELECT TIMESTAMPDIFF(DAY, startDate, endDate) AS days 
    FROM fulfilment 
) x 
GROUP BY employee.employee_id 
+2

這是一個很好的查詢來獲得差異在日子裏謝謝你,但不是我以後的樣子,雖然 – Crouch

1

爲什麼不嘗試

SELECT 
    date, 
    SUM(no_of_live_products) 
FROM 
    fulfilment 
INNER JOIN 
    employee ON employee.employee_id = fulfilment.employee_id 
WHERE 
     employee.department = 'Telecoms Services' 
    AND date >= '2013-09-16' 
    AND date <= '2013-09-29' 
GROUP BY date(date) 
+0

乾杯我已經用相同的方法解決了這個問題,但是提到了更多。非常感激 – Crouch