Dies wäre in der "Wo" -Klausel ... Wie finde ich Viertel basierend auf einem Gehaltsabrechnungszyklus? Unser Gehaltsabrechnungszyklus beginnt am 25. des Quartalsmonats und endet am 10. des Quartalsmonats. Zum Beispiel ... Das 2. Quartal beginnt am 25.04.2016 und endet am 07.10.2016.Monatssätze basierend auf dem Abrechnungszyklus finden
1
A
Antwort
0
Ok es ist irgendwie schwer zu verstehen, was Sie tun, aber hier ist etwas, das funktionieren sollte. Sie können die Daten bearbeiten, um zu passen, was Sie wollen, aber ich habe es basierend gemacht, was Sie angegeben haben.
--This is just test data... you can use your own table
IF OBJECT_ID('tempdb..#payroll') IS NOT NULL DROP TABLE #payroll
CREATE TABLE #payroll (dates date)
INSERT INTO #payroll (dates) VALUES
('1/1/2016'),
('1/16/2016'),
('2/4/2016'),
('3/3/2016'),
('3/19/2016'),
('4/18/2016'),
('5/6/2016'),
('6/4/2016'),
('6/29/2016'),
('7/4/2016'),
('7/31/2016'),
('8/9/2016'),
('9/1/2016'),
('10/3/2016'),
('10/19/0216'),
('11/4/2016'),
('11/21/2016'),
('12/2/2016'),
('1/1/2016'),
('1/8/2017'),
('1/21/2017')
--variable for what ever quarter you want to limit on. 1-4
declare @Quarter int
set @Quarter = 4
--Year that you are focused on. If left to NULL it uses the current year
declare @Year int
set @Year = NULL
IF @Year IS NULL
BEGIN
SET @Year = Year(GETDATE())
END
--Date parameters that we will use to filter
declare @startDate date = null
declare @endDate date = null
--logic to set your quarters
set @startDate = case
when @Quarter = 1 then '1/25/' + CAST(@Year as varchar(4))
when @Quarter = 2 then '4/25/' + CAST(@Year as varchar(4))
when @Quarter = 3 then '7/25/' + CAST(@Year as varchar(4))
when @Quarter = 4 then '9/25/' + CAST(@Year as varchar(4))
end
set @endDate = case
when @Quarter = 1 then '4/10/' + CAST(@Year as varchar(4))
when @Quarter = 2 then '7/10/' + CAST(@Year as varchar(4))
when @Quarter = 3 then '9/10/' + CAST(@Year as varchar(4))
when @Quarter = 4 then '1/10/' + CAST((@Year + 1)as varchar(4))
end
--run it to test results
select *
from #payroll
where dates between @startDate and @endDate
können Sie die Start- und Enddaten für alle Quartale für 1 Jahr – scsimon
1. Quartal Start gie ist 1/25/16 Ende ist 4/10/16; 2. Viertel Start ist 4/25/16 Ende ist 7/10/16; 3. Viertel Start ist 7/25/16 Ende ist 9/10/16; 4. Quartal Start ist 9/25/16 Ende ist 1/10/17 – Benjo
Danke. Und nur um zu verdeutlichen, dass Sie versuchen zu sehen, in welches Quartal ein bestimmtes Abrechnungsdatum fällt, richtig? – scsimon