Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल वैरिएबल +1 तक चलता है जब तक वैरिएबल 52 तक नहीं पहुंच जाता है?

यदि आप लूपिंग के संदर्भ में सोच रहे हैं, तो आप गलत रास्ते पर जा रहे हैं। आपको सेट-आधारित तर्क के संदर्भ में सोचने की जरूरत है। आपको क्या करना है @weeknumber चर से पूरी तरह छुटकारा पाना है, और बस अपने डेटा को अलग तरीके से समूहित करना है। आप सप्ताह के आधार पर समूह बनाना चाहते हैं, इसलिए आपको सप्ताह की संख्या की गणना करने की आवश्यकता है। आप इसे DATEDIFF() और DATEPART(dw,...) का उपयोग करके कर सकते हैं:

declare @StartDate date
declare @EndDate date
declare @WeekNumber int

set @StartDate = '01/06/2014'
set @EndDate = '07/06/2015'
--set @WeekNumber = 01

select datediff(ww,@startdate,[WeekStartDate])+1 [WeekNumber]
,[WeekStartDate]
,dateadd(dd,6,[WeekStartDate]) [WeekEndDate]
,* 
From (Select t1.LeadSource
                    ,count(t1.prospectid) [Leads]
                    ,sum(t1.Found) [Apps]
                    ,dateadd(dd,2-datepart(dw,t1.CreateDate),t1.CreateDate) WeekStartDate
        from Table T1 
        where t1.CreateDate between @startDate
            and @enddate
GROUP BY f.LeadSource ) f


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसएसआईएस 2008 - चर में वर्तमान तिथि प्राप्त करें

  2. सी # पैरामीटर के रूप में सूची के साथ SQL तालिका में डालें

  3. एसक्यूएल सर्वर 2008 में ईमेल सत्यापन?

  4. vb.net और asp.net का उपयोग करके एक्सेल को SQL डेटाबेस में आयात करना

  5. एक्सएमएल के नेस्टेड पदानुक्रम को एसक्यूएल टेबल में कैसे बदलें