Как создать таблицу из нескольких запросов - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь создать таблицу с количеством элементов из двух разных таблиц, чтобы получить итоги и промежуточные итоги, как показано ниже:

(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);

Прежде всего, эти запросы возвращают синтаксические проблемы рядом с 'AS' в строках 2+3 (промежуточные итоги по строке 1) и 5 ​​+ 6 + 7 (промежуточные итоги по 4).Я не могу пройти мимо этого, поскольку я пытался переформатировать каждый раз с или без скобок и т. Д.

Msg 156, Уровень 15, Состояние 1, Строка 2Неверный синтаксис рядом с ключевым словом «AS».Сообщение 156, уровень 15, состояние 1, строка 3Неверный синтаксис рядом с ключевым словом «AS».Сообщение 156, уровень 15, состояние 1, строка 5Неверный синтаксис рядом с ключевым словом «AS».Сообщение 156, уровень 15, состояние 1, строка 6Неверный синтаксис рядом с ключевым словом «AS».Сообщение 156, уровень 15, состояние 1, строка 7Неверный синтаксис рядом с ключевым словом 'AS'.

Мне нужно создать таблицу с этими заголовками и итоговыми / промежуточными итогами, поэтому не знаю, сработает ли это.У меня есть другой запрос, который бывший коллега создал с помощью NumberCheck для создания таблицы, но мне это слишком сложно для репликации (и он больше не здесь, чтобы просить о помощи).

Любая помощь будет в значительной степениоценили.Спасибо Лиам

1 Ответ

0 голосов
/ 13 июня 2018

Попробуйте:

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;

В сценарии я создал пример сценария ввода:

enter image description here

Результаты:

enter image description here

...