22,300
社区成员




;WITH a
AS
(
SELECT * ,ROW_NUMBER()OVER(PARTITION BY DEP ORDER BY Date DESC) AS RN FROM 表 WHERE Date BETWEEN '20160401' AND '20160403'
)
SELECT DEP
,ZJE = SUM(ZJE)
,RC = max(CASE WHEN RN=1 THEN RC ELSE 0 END)
FROM a
WHERE Date BETWEEN '20160401' AND '20160403'
GROUP BY DEP;
DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=1--周1
SELECT DATEADD(Day,@number-(DATEPART(dw,@dt)+@@DATEFIRST-2)%7-1,@dt)
Date BETWEEN DATEADD(dd,-DATEPART(dw,GETDATE()-8),CONVERT(VARCHAR(10),GETDATE(),120))-6 AND DATEADD(dd,-DATEPART(dw,GETDATE()-8),CONVERT(VARCHAR(10),GETDATE(),120))
条件改为上周一到周日,这类型判断就好是传参,把日期参数由程序去传