Sql 获取要跨所有行显示的大小写表达式
我正在设置一个查询,需要在所有列中包含所有case表达式,而不是创建新行 我尝试添加case表达式,如代码所示。我还尝试在case表达式之前添加SUMSql 获取要跨所有行显示的大小写表达式,sql,sql-server,Sql,Sql Server,我正在设置一个查询,需要在所有列中包含所有case表达式,而不是创建新行 我尝试添加case表达式,如代码所示。我还尝试在case表达式之前添加SUM SELECT sum(Property.user_assignable) AS total_NASF, sum(Property.user_gross) AS total_GSF, Region.description As Region, (CASE WHEN UDF.Custom005 = 'Educational' Th
SELECT
sum(Property.user_assignable) AS total_NASF,
sum(Property.user_gross) AS total_GSF,
Region.description As Region,
(CASE
WHEN UDF.Custom005 = 'Educational'
Then SUM(Property.user_assignable)
End) As Educational_NASF,
(CASE
WHEN UDF.Custom005 = 'Educational'
Then sum(Property.user_gross)
End) As Educational_GSF,
(CASE
WHEN UDF.Custom005 = 'Residence Hall'
Then sum(Property.user_assignable)
End) As Residential_NASF,
(CASE
WHEN UDF.Custom005 = 'Residence Hall'
Then sum(Property.user_gross)
End) As Residential_GSF,
(CASE
WHEN UDF.Custom005 = 'Hospital'
Then sum(Property.user_assignable)
End) As Hospital_NASF,
(CASE
WHEN UDF.Custom005 = 'Hospital'
Then sum(Property.user_gross)
End) As Hospital_GSF
FROM
ae_s_bld_c Property
Inner JOIN dbo.ae_s_bld_c_udf UDF ON (Property.multitenant_id =
UDF.multitenant_id)
AND (Property.bldg = UDF.bldg)
AND (Property.fac_id = UDF.fac_id)
AND (Property.region_code = UDF.region_code)
Inner Join ae_b_reg_e Region ON Property.multitenant_id =
region.multitenant_id
AND Property.region_code = Region.region_code
WHERE
(Property.bldg_status = 'ACTIVE' OR
Property.bldg_status = 'VACANT' OR
Property.bldg_status = 'CONSTRUCTION') AND
Property.owned_leased = 'Y' AND
Property.prop_type = 'BUILDING' AND
Property.bldg_class <> 'Parking Struct' AND
Property.region_code LIKE '28%'
Group By
Region.description,
UDF.Custom005
预期结果(35行)尝试将列从
CASE…SUM()
更改为SUM(CASE…
;例如改变:
(
CASE
WHEN UDF.Custom005 = 'Educational'
THEN SUM(Property.user_assignable)
END
) AS Educational_NASF
致:
确保您也从
分组依据
表达式中删除了字段UDF.Custom005
。这应该适用于您尝试执行的操作。
将大小写
放入总和
中,真
部分返回列,假
部分返回0
...
SUM(
CASE
WHEN UDF.Custom005 = 'Educational' Then Property.user_assignable
ELSE 0
End
) As Educational_NASF,
...
在本例中,所有行都被求和,但如果
时的条件不匹配(即,当它不是'Educational'
时),列值将被调零,因此求和结果只包含您想要的行。简化您的问题!这是哪个数据库?Oracle?Microsoft SQL Server感谢Gents!!成功了。
...
SUM(
CASE
WHEN UDF.Custom005 = 'Educational' Then Property.user_assignable
ELSE 0
End
) As Educational_NASF,
...