我問過a question in April和@Mikael幫我解決了這個問題。這個需求已經發生了變化,我無法搞清楚如何構建查詢。 表結構是在T-SQL中查找自上次交易(同一天或前一天)以來的利潤總和
SID Sdate Profit Units 1 7/26/2010 9:15:00 AM -37.5 -1 1 7/26/2010 12:00:00 PM -125 -1 1 7/26/2010 12:45:01 PM -12.5 -1 1 7/26/2010 12:45:02 PM 0 0 1 7/26/2010 12:45:03 PM -75 1 1 7/26/2010 2:00:01 PM -12.5 1 1 7/26/2010 2:00:02 PM 0 0 1 7/26/2010 2:00:03 PM -125 -1 1 7/26/2010 2:15:00 PM -50 -1 1 7/27/2010 9:15:00 AM 25 -1 1 7/27/2010 12:00:00 PM 196 -1 1 7/27/2010 2:15:00 PM -12.5 -1 1 7/28/2010 9:15:00 AM 425 -1 1 7/28/2010 12:00:00 PM -125 -1 1 7/28/2010 2:15:00 PM -12.5 -1 1 7/29/2010 9:15:00 AM -37.5 -1 1 7/29/2010 12:00:00 PM -90 -1 1 7/29/2010 12:45:01 PM -12.5 -1 1 7/29/2010 12:45:02 PM 0 0 1 7/29/2010 12:45:03 PM -75 1 1 7/29/2010 2:15:00 PM 23 1
的計算是爲說明:
SID Sdate Profit Units End-of-day-Profit Comments 1 7/26/2010 9:15:00 AM -37.5 -1 1 7/26/2010 12:00:00 PM -125 -1 1 7/26/2010 12:45:01 PM -12.5 -1 1 7/26/2010 12:45:02 PM 0 0 1 7/26/2010 12:45:03 PM -75 1 1 7/26/2010 2:00:01 PM -12.5 1 1 7/26/2010 2:00:02 PM 0 0 1 7/26/2010 2:00:03 PM -125 -1 1 7/26/2010 2:15:00 PM -50 -1 -175 SUM of profit(row 9 to row 11) going back to 7/26/2010 2:00:02 PM 1 7/27/2010 9:15:00 AM 25 -1 1 7/27/2010 12:00:00 PM 196 -1 1 7/27/2010 2:15:00 PM -12.5 -1 33.5 SUM of profit (row 9 to row 14) going back to 7/26/2010 2:00:02 PM 1 7/28/2010 9:15:00 AM 425 -1 1 7/28/2010 12:00:00 PM -125 -1 1 7/28/2010 2:15:00 PM -12.5 -1 321 SUM of profit(row9 to row 17) going back to 7/26/2010 2:00:02 PM 1 7/29/2010 9:15:00 AM -37.5 -1 1 7/29/2010 12:00:00 PM -90 -1 1 7/29/2010 12:45:01 PM -12.5 -1 1 7/29/2010 12:45:02 PM 0 0 1 7/29/2010 12:45:03 PM -75 1 1 7/29/2010 2:15:00 PM 23 1 -52 SUM of profit(row 22 to row 23) going back to 7/29/2010 12:45:02 PM
其結果將是
SID Sdate Profit Units 1 7/26/2010 -175 -1 1 7/27/2010 33.5 -1 1 7/28/2010 321 -1 1 7/29/2010 -52 1
淨利潤列的總和在每天下午2:15取爲每個SID。爲簡單起見,我包含了一個SID。想法是回顧當前日期或前幾天的利潤= 0和單位= 0的行。一旦找到該行,然後總結所有利潤值。
我感謝這方面的任何幫助。謝謝。
'淨利潤列的總和被以2:每天15PM - 如何?我的意思是,它是(應該是)手動完成還是使用代理作業?在你的例子中,每天下午2:15有一行,它也包含一個Profit值。如果沒有這麼一排呢?爲了增加另一個每日利潤日期值,應該插入時間爲2:15 PM,利潤爲0,或者腳本是否應該使用Profit搜索最新的行並存儲End-那裏的日常利潤? –
Sdate是一個具有唯一約束的列嗎?數據如何插入?您是否首先插入Sdate M/dd/yyyy 2:15:00 PM的記錄,然後計算每日收益? – boes
@Frans,sdate不是具有唯一約束的列。由m/dd/yyyy 2:15 PM指示的日結束記錄將在運行過程生成這些記錄時存儲在表中。 – ARK