求教SQL按多条件统计某个字段的值,该如何处理

求教SQL按多条件统计某个字段的值
比如有一张表,字段有四个,KHH,DATE,FHJE,SKJE,现需统计数据要求如下,找出所有数据中前20个DHJE大于SKJE,值为SKJE-FHJE,对找出的20个数据统计5天内的SKJE-FHJE,10天内的SKJE-FHJE,15天之前的SKJE-FHJE。
select top 20 a.khh,
sum(case when isnull(a.SKJE,0)<isnull(a.FHJE,0) then (isnull(a.FHJE,0)-isnull(a.SKJE,0)) else 0 end) as yszk
from View_XSHTTZH a
group by a.khh
后面的就不会写了
请大神们帮忙
------解决方案--------------------
5天内---是以当前系统日期作比较?
以下举个例子,自己调试一下结果是否正确

DECLARE @Dt DATETIME
SET @Dt = CONVERT(VARCHAR(10), GETDATE() + 1, 120)


SELECT  a.khh
       ,SUM(CASE WHEN DATEDIFF(dd, a.[DATE], @Dt) < 5
                 THEN ISNULL(a.SKJE, 0) - ISNULL(a.FHJE, 0)
                 ELSE 0
            END) AS [5天内]
       ,SUM(CASE WHEN DATEDIFF(dd, a.[DATE], @Dt) < 10
                 THEN ISNULL(a.SKJE, 0) - ISNULL(a.FHJE, 0)
                 ELSE 0
            END) AS [10天内]
       ,SUM(CASE WHEN DATEDIFF(dd, a.[DATE], @Dt) < 15
                 THEN ISNULL(a.SKJE, 0) - ISNULL(a.FHJE, 0)
                 ELSE 0
            END) AS [15天内]
       ,SUM(CASE WHEN DATEDIFF(dd, a.[DATE], @Dt) >= 15
                 THEN ISNULL(a.SKJE, 0) - ISNULL(a.FHJE, 0)
                 ELSE 0
            END) AS [15天之前]
FROM    View_XSHTTZH AS a
WHERE   ISNULL(a.SKJE, 0) < ISNULL(a.FHJE, 0)
        AND a.khh IN (
        SELECT TOP 20
                khh
        FROM    View_XSHTTZH
        GROUP BY khh
        ORDER BY SUM(CASE WHEN ISNULL(SKJE, 0) < ISNULL(FHJE, 0)
                          THEN ISNULL(FHJE, 0) - ISNULL(SKJE, 0)
                          ELSE 0
                     END) DESC )
GROUP BY a.khh