SQL查询以计算DATEDIFF的AVG

问题描述 投票:0回答:2

我正在尝试编写一个给我一个查询,给我一个AVGDatediff的查询

我有一个类似的查询,我正在尝试用我的新查询复制,这里是:

SELECT DATENAME(MONTH, d.OPENED) AS MonthValue, 
SUM(CASE WHEN d.ASSGNTO = 'E099255' AND d.REV_CLS = 2 THEN 
1 ELSE 0 END) AS SmallCommercialIndust, 
SUM(CASE WHEN d.ASSGNTO = 'E099255' AND d.REV_CLS <> 2 THEN 1 
ELSE 0 END) AS Residential
FROM hb_Disputes d
WHERE YEAR(d.OPENED) = YEAR(GETDATE())
GROUP BY DATENAME(MONTH, d.OPENED) 
ORDER BY MIN(d.OPENED);

这是我的输出:

Month Value  Small Commercial Indust     Residential
----------------------------------------------------
January             0                         0
February            0                         0
March               1                         0
April               0                         2
May                 0                         1
June                0                         1
July                1                         0
August              1                         0
September           0                         1
October             1                         0
November            1                         0
December            0                         1

下面是我尝试创建的Query,它使用相同的信息,但是在需要d.OPENS的地方添加一个附加成分,并将其减去d.DATERLVD并为我提供当月的AVG:] >

SELECT DATENAME(MONTH, d.OPENED) AS MonthValue, 
SUM(CASE WHEN d.ASSGNTO = 'E099255' AND d.REV_CLS = 2 THEN 1 
ELSE 0 END AND AVG(DATEDIFF(day, d.OPENED, d.DATERLVD)) AS 
SmallCommercialIndust, 
SUM(CASE WHEN d.ASSGNTO = 'E099255' AND d.REV_CLS <> 2  THEN 1 
ELSE 0 END AND AVG(DATEDIFF(day, d.OPENED, d.DATERLVD)) AS 
Residential
FROM hb_Disputes d
WHERE YEAR(d.OPENED) = YEAR(GETDATE())
GROUP BY DATENAME(MONTH, d.OPENED)
ORDER BY MIN(d.OPENED);
    

[我正在尝试编写一个查询,使我得到一个给我Datediff的AVG。我有一个类似的查询,我正在尝试用我的new复制它,这里是:SELECT DATENAME(MONTH,d.OPENED)AS ...

sql sql-server datediff
2个回答
1
投票

您为什么在AND子句中使用SELECT?我认为您想要:


0
投票

了解如何正确设置代码格式。您可以清楚地看到将括号放在错误的位置。

© www.soinside.com 2019 - 2024. All rights reserved.