SQL Server中具有多个where条件的相同选择条件
当表中需要相同的字段但具有不同的where条件时,是否可以这样做 我曾经尝试过这样做,但是它缺少了一些东西,这就是为什么它不能正常工作的原因SQL Server中具有多个where条件的相同选择条件,sql,sql-server,Sql,Sql Server,当表中需要相同的字段但具有不同的where条件时,是否可以这样做 我曾经尝试过这样做,但是它缺少了一些东西,这就是为什么它不能正常工作的原因 ;WITH ProductsCTE (PSC_Score_0_11, PSC_Score_12_18, PSC_Score_19_23, PSC_Score_24_34, PSC_Score_35_50, PSC_Score_51_100, Total AS ( SELE
;WITH ProductsCTE (PSC_Score_0_11, PSC_Score_12_18, PSC_Score_19_23,
PSC_Score_24_34, PSC_Score_35_50, PSC_Score_51_100,
Total AS
(
SELECT
SUM(CONVERT(int, PSC_Score_0_11)) AS PSC_Score_0_11,
SUM(CONVERT(int, PSC_Score_12_18)) AS PSC_Score_12_18,
SUM(CONVERT(int, PSC_Score_19_23)) AS PSC_Score_19_23,
SUM(CONVERT(int, PSC_Score_24_34)) AS PSC_Score_24_34,
SUM(CONVERT(int, PSC_Score_35_50)) AS PSC_Score_35_50,
SUM(CONVERT(int, PSC_Score_51_100)) AS PSC_Score_51_100,
(SUM(CONVERT(int, PSC_Score_0_11)) + SUM(CONVERT(int, PSC_Score_12_18)) +
SUM(CONVERT(int, PSC_Score_19_23)) + SUM(CONVERT(int, PSC_Score_24_34)) +
SUM(CONVERT(int, PSC_Score_35_50)) + SUM(CONVERT(int, PSC_Score_51_100))) AS Total
FROM
VillageLevelPscData
)
SELECT *
FROM ProductsCTE
WHERE [DISTRICT_NAME] = 'ABC'
UNION ALL
SELECT *
FROM ProductsCTE
WHERE [DISTRICT_NAME] = 'DEF'
我想将结果作为“PSC_得分_0_11”和其他的总和,其中district='ABC'和district='DEF',并将它们合并到一个表中
我发现此查询有一个错误:
关键字“AS”附近的语法不正确
我希望每个地区都能得到这样的结果
我猜您想要:
select district_name,
sum(CONVERT(int,PSC_Score_0_11 )) as PSC_Score_0_11,
sum(CONVERT(int,PSC_Score_12_18 )) as PSC_Score_12_18,
sum(CONVERT(int,PSC_Score_19_23 )) as PSC_Score_19_23,
sum(CONVERT(int,PSC_Score_24_34 )) as PSC_Score_24_34,
sum(CONVERT(int,PSC_Score_35_50 )) as PSC_Score_35_50,
sum(CONVERT(int,PSC_Score_51_100 )) as PSC_Score_51_100,
(SUM(CONVERT(int,PSC_Score_0_11 )) + SUM(CONVERT(int,PSC_Score_12_18 )) +
SUM(CONVERT(int,PSC_Score_19_23 )) + SUM(CONVERT(int,PSC_Score_24_34 ))
+ SUM(CONVERT(int,PSC_Score_35_50 ))+ SUM(CONVERT(int,PSC_Score_51_100 ))
) as Total
from VillageLevelPscData
group by district_name;
CTE似乎不是特别有用。我猜您想要:
select district_name,
sum(CONVERT(int,PSC_Score_0_11 )) as PSC_Score_0_11,
sum(CONVERT(int,PSC_Score_12_18 )) as PSC_Score_12_18,
sum(CONVERT(int,PSC_Score_19_23 )) as PSC_Score_19_23,
sum(CONVERT(int,PSC_Score_24_34 )) as PSC_Score_24_34,
sum(CONVERT(int,PSC_Score_35_50 )) as PSC_Score_35_50,
sum(CONVERT(int,PSC_Score_51_100 )) as PSC_Score_51_100,
(SUM(CONVERT(int,PSC_Score_0_11 )) + SUM(CONVERT(int,PSC_Score_12_18 )) +
SUM(CONVERT(int,PSC_Score_19_23 )) + SUM(CONVERT(int,PSC_Score_24_34 ))
+ SUM(CONVERT(int,PSC_Score_35_50 ))+ SUM(CONVERT(int,PSC_Score_51_100 ))
) as Total
from VillageLevelPscData
group by district_name;
CTE似乎不是特别有用。您的代码有什么问题?它不编译吗?>错误?它是否没有提供预期的结果>您期望什么?对于您展示的案例,您可以在('ABC','DEF')中编写[DISTRICT_NAME]的
,
,或者当您需要每个查询的聚合时,使用视图。我看不出这将如何从公共表表达式中获益。[DISTRICT_NAME]不在产品中SCTE您的代码有什么问题?它不编译吗?>错误?它是否没有提供预期的结果>您期望什么?对于您展示的案例,您可以在('ABC','DEF')中编写[DISTRICT_NAME]的,
,或者当您需要每个查询的聚合时,使用视图。我看不出这将如何从公共表表达式中受益。[DISTRICT_NAME]不在ProductsCTE中