Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL menjalankan Variabel +1 hingga Variabel mencapai 52?

Jika Anda berpikir dalam hal perulangan, Anda akan menempuh jalan yang salah. Anda perlu berpikir dalam kerangka logika berbasis himpunan. Yang perlu Anda lakukan adalah menyingkirkan variabel @weeknumber sama sekali, dan cukup mengelompokkan data Anda secara berbeda. Anda ingin mengelompokkan berdasarkan minggu, jadi Anda perlu menghitung jumlah minggu. Anda dapat melakukannya dengan menggunakan DATEDIFF() dan 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. wildcard CONTAINSTABLE gagal pada pencocokan frasa?

  2. Membuat versi database SQL Server

  3. Pisahkan baris berdasarkan nilai kolom

  4. Bagaimana saya bisa memvalidasi data sebelum memasukkan/memperbarui dengan SQL Server?

  5. Gunakan DATABASEPROPERTYEX() untuk Mengembalikan Pengaturan Database di SQL Server