2012-11-15 21 views
0

有關mysql大師的問題:分組前傳出數據

我有一個數據集,列出了人工費率和費率開始的日期。這些費率可能是每小時,每天,每週甚至每月。 (即有人從11月6日開始每週以700美元/周的速度工作1周)

我正試圖建立一個圖表,繪製日常支出隨時間變化的圖表。我有一個簡單的總和和組查詢。然而,每週和每月的利率都在扭曲它。在上面的例子中,所有700美元的土地都在11月6日,而700美元只花了一天的時間(100美元)。

數據集非常大,所以我試圖讓mysql儘可能多地完成繁重的工作,而不必循環遍歷每一行。然而,如果有一種保守的方式來解決這個問題,而不是通過怪物查詢,我願意接受。

漂亮多毛的吧?有任何想法嗎?

如果無法回答,我的備份計劃只是按照日常費率存儲所有數據,但原始費率類型(周,月)也將被存儲,以便可以返回費率至。

回答

0

我不得不處理這個完全相同的問題,除非它是基於在整個午夜時間下班的小時工作。

無論如何,業務邏輯是重要的,似乎你想要以X美元計算1周爲每天$(1/7)X。

我會做的是分裂這個查詢,首先做每小時/每天 - 容易,它的一整天。然後做每週/每月,並首先得到容易的中間數據。然後開始 - 6,開始 - 5,。 。開始-1(每週),開始計算所需範圍內的天數。

如果你願意,你可以聯合所有這些查詢來獲得一個返回集。

但可能最好在mysql以外的地方做,你會有更好的穀物控制。然後,您可以返回所有數據,並通過它快速循環處理頭尾。