我正在尝试创建一个表来计算来自两个不同表的项目,以获得总计和小计,如下所示:
(select count(*) from ccustomer AS TotalCustomers)
(select count(*) from ccustomer where floating = 0 AS ActiveCustomers),
(select count(*) from ccustomer where floating = 1 AS FloatingCustomers),
(select count(*) from pproperty AS TotalProperties)
(select count(*) from pproperty where occcustno = 0 and propstat <> 'de' AS VoidProperties),
(select count(*) from pproperty where occcustno = 0 and propstat = 'de' AS DemolishedProperties),
(select count(*) from pproperty where occcustno <> 0 AS OccupiedProperties);
首先,这些查询在第2 + 3行(第1行的小计)和5 + 6 + 7(4的小计)中返回'AS'附近的语法问题。我无法理解这一点,因为我每次尝试使用或不使用括号等重新格式化。
第15行,第1行,第2行
关键字“AS”附近的语法不正确。
第3行,第1行,第15行
关键字“AS”附近的语法不正确。
第15行,第1行,第5行
关键字“AS”附近的语法不正确。
信息156,第15级,第1行,第6行
关键字“AS”附近的语法不正确。
第15行,第1行,第7行
关键字“AS”附近的语法不正确。
我需要生成一个包含这些标题和总计/小计的表,所以不知道这是否有效。我有另一个查询,前同事使用NumberCheck创建了一个表,但是对我来说复制有点太复杂了(他不再在这里寻求帮助)。
非常感谢任何帮助。 谢谢 利安
答案 0 :(得分:2)
试试这个:
create table ccustomer(floating int)
create table pproperty(occcustno int, propstat nvarchar(50) )
insert into ccustomer values (1),(0),(1),(0),(1),(0),(1),(0),(1),(1)
insert into pproperty values (0,'de'), (1,'de'), (0,'de'), (0,'us'), (1,'de'), (1,'us'), (1,'de')
select
(select count(*) from ccustomer) AS TotalCustomers,
(select count(*) from ccustomer where floating = 0) AS ActiveCustomers,
(select count(*) from ccustomer where floating = 1) AS FloatingCustomers,
(select count(*) from pproperty ) AS TotalProperties,
(select count(*) from pproperty where occcustno = 0 and propstat <> 'de') AS VoidProperties,
(select count(*) from pproperty where occcustno = 0 and propstat = 'de') AS DemolishedProperties,
(select count(*) from pproperty where occcustno <> 0) AS OccupiedProperties;
在脚本中我创建了一个示例输入场景:
结果: