Saturday 15 June 2013

sql server - Help with SQL to get Hits per day for today and 1 month prior -


मुझे अब यह एसक्यूएल है:

  क्रय प्रक्रिया Dbo.sel_Track_HitsLast30Days (@projectID int) के रूप में शुरुआत की घोषणा @FirstDay smalldatetime, @NumberOfMonths पूर्णांक, @priorMonth smalldatetime सेट @priorMonth = (कास्ट ((एसटीआर (YEAR (DATEADD (एम, -1 का चयन करें, getDate ()))) + '/' + एसटीआर (MONTH (DATEADD (एम, -1, getDate ()))) + '/' + एसटीआर (DAY (DATEADD (एम, -1, getDate ())))) दिनांक समय के रूप में)) का चयन करें @FirstDay = @priorMonth, @NumberOfMonths = 1 ; का चयन करें; साथ दिन के रूप में (DATEADD (एम, @NumberOfMonths, @ FirstDay +1) CalendarDay यूनिअन सभी का चयन करें DATEADD (घ, 1, CalendarDay) CalendarDay के रूप में दिन जहां DATEADD (घ, 1, CalendarDay) के & lt से के रूप में @FirstDay का चयन करें) calendarday, foundDate.TotalbyDate, foundDate.date दिनों से वाम बाहरी JOIN (COUNT (वाम (visitDateTime, 11)) का चयन TotalbyDate, सबस्ट्रिंग (परिवर्तित (चार (10 के रूप में) परिवर्तित (चार (10), visitDateTime, 121)), 1, 11) दिनांक से दिनांक dbo.TrackingData जहाँ visitDateTime & gt; = dateadd (d, datediff (d, 0, getdate ()), -30) और projectID = @projectID सबस्ट्रिंग द्वारा समूह (परिवर्तित (चार (10), चार (10 CONVERT (), visitDateTime, 121)), 1, 11)) foundDate foundDate.date = CalendarDay आदेश CalendarDay वर्णन अंत <द्वारा पर / कोड>  

यह ठीक काम करता है, लेकिन यह 31 दिनों के साथ खाते के महीनों में नहीं ले रहा है और मैं किसी कारण से आज की तारीख वापस नहीं पा रहा हूं।

प्रयास करें इस (AdventureWorks नमूना डेटाबेस के रूप में उपयोग करते हुए)

  घोषणा @today datetime, @NumberOfMonths पूर्णांक, @FirstDay smalldatetime @today का चयन करें = '2004-03-09', - getdate (), केवल @NumberOfMonths = 1, @FirstDay = CAST (फ़्लोअर (CAST (DATEADD (एम -1), @today) एएस फ्लोट के रूप में)) एएस datetime; दिन के रूप में (चयन करें @ पहले दिन कैलेंडर के रूप में यूनिअन सभी का चयन करें DATEADD (डी, 1, कैलेंडर डे) दिन के दिन के दिन दिन जहां डीडीडी (डी, 1, कैलेंडर डे) और एलटीटीडीडीडी (एम, @NumberOfMonths, @ फर्स्टडे + 1)) कन्वर्ट कन्वर्ट (बारबार (10), कैलेंडर दिवस, 111) के रूप में [दिनांक], [लेन-देन दिनांक] के रूप में [गणना] से दिन बकाया शामिल हैं। लेन-देन इतिहास पर लेन-देन इतिहास = दिन। कैलेंडर के माध्यम से कैलेंडर कैलेंडर द्वारा आदेश दिनांक  

क्या आउटपुट होगा

 दिनांक गणना ---------- ----------- 2004/02/09 272 2004/02/10 308 2004/02 / 11 264 2004/02/12 265 2004/02/13 250 ... 

संपादित करें : सभी अंतराल तिथियों को शामिल करने के लिए अपडेट किया गया


No comments:

Post a Comment