Ya mas o menos entendi que es lo que quieres hacer, ahorita tienes el problema con la semana 9, la siguiente semana lo vas a tener con la 8 y la 9 y asi sucesivamente, no seria mas facil sacar un datediff de semanas?
Código SQL:
Ver originalSELECT
CASE
WHEN datediff(wk,getdate(), c.FechaProbablePago)=1
THEN
c.AbonoCuentaProveedor - isNull ((SELECT SUM(Monto) FROM medacasa18.dbo.CtbPolizasDetAP x WHERE x.IdPolizaDetAbono = b.IdPolizaDet),0)
END SEM1,
CASE
WHEN datediff(wk,getdate(), c.FechaProbablePago)=2
THEN
c.AbonoCuentaProveedor - isNull ((SELECT SUM(Monto) FROM medacasa18.dbo.CtbPolizasDetAP x WHERE x.IdPolizaDetAbono = b.IdPolizaDet),0)
END SEM2
Código SQL:
Ver originalCREATE TABLE #fechas(
fecha datetime
)
INSERT INTO #fechas VALUES (dateadd(wk,1,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,2,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,3,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,4,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,5,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,6,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,7,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,8,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,9,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,10,getdate()))
INSERT INTO #fechas VALUES (dateadd(wk,11,getdate()))
SELECT datediff(wk,getdate(), fecha) AS wk,
fecha FROM #fechas
wk fecha
1 2017-11-14 14:06:05.087
2 2017-11-21 14:06:05.100
3 2017-11-28 14:06:05.100
4 2017-12-05 14:06:05.100
5 2017-12-12 14:06:05.100
6 2017-12-19 14:06:05.100
7 2017-12-26 14:06:05.100
8 2018-01-02 14:06:05.100
9 2018-01-09 14:06:05.100
10 2018-01-16 14:06:05.100
11 2018-01-23 14:06:05.100