sql >> Database >  >> RDS >> Sqlserver

SQL Variabele +1 uitvoeren totdat Variabele 52 bereikt?

Als je denkt in termen van looping, ga je de verkeerde weg in. Je moet denken in termen van set-based logica. Wat u moet doen, is de @weeknumber-variabele helemaal verwijderen en uw gegevens gewoon anders groeperen. U wilt groeperen op weken, dus u moet het weeknummer berekenen. U kunt dit doen door DATEDIFF() en DATEPART(dw,...) te gebruiken:

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. Exporteer mysql-database / mysql-tabellen in json-indeling via de opdrachtregel OF PHP

  2. Hoe Relation::morphMap() te gebruiken voor verschillende klassen

  3. Blobs invoegen in MySql-databases met php

  4. Hoe de conversieratio berekenen in MySQL?