在院人次周报算法

来源:互联网 发布:js改变div背景颜色 编辑:程序博客网 时间:2024/04/28 21:00

sqlserver中自动获取上周区间: 上周一到上周日

 WHERE  tjsj 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))


求上周在院人次,应该取上周日所对应的在院人次,其他度量取累计值
SELECT  KSDM ,TJSJ
       ,cyrc = SUM(cyrc)
       ,RYRC=SUM(ryrc)
        ,zyrc = max(CASE WHEN RN=1 THEN  ZYRC  ELSE 0 END)
       ,ZYTS=SUM(zyts)
       ,ZKRC=SUM(zkrc)
       ,ssrc=sum(ssrc)
       ,QJRC=SUM(qjrc)
       ,SWRC=SUM(swrc)

FROM  (

SELECT * ,datepart(weekday,tjsj)wk,ROW_NUMBER()OVER(PARTITION BY ksdm ORDER BY tjsj DESC) AS RN 
FROM JSZYY_WX.dbo.FACT_ZY_GZL
 WHERE  tjsj 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))
)a

GROUP BY TJSJ,KSDM 
)b


0 0