SQL Server 2 просмотра в одном - PullRequest
1 голос
/ 21 марта 2011

У меня есть 3 разных вида

  1. select count(*) as Grandtotal from table x where id=1
  2. select count(*) as total from table x where id=1 and [bla bla] Group by id
  3. select top1(a) from table y

мне нужносоздать представление, которое будет содержать текущий столбец

GrandTotal, всего,

Ответы [ 3 ]

3 голосов
/ 21 марта 2011
SELECT
  COUNT(*) AS GrandTotal,
  COUNT(CASE WHEN [bla bla] THEN 1 END) AS Total
  (SELECT TOP 1 a FROM y) AS a
FROM x
WHERE id = 1
1 голос
/ 21 марта 2011

Используя case, вы также можете объединить выборки в одном запросе:

select  sum(case when id=1 then 1 end) as Id1GrandTotal
,       count(distinct case when id=1 and [bla bla] then id end) 
            as Id1AndBlahBlahExists
,       max(a) as TopValueOFA
from    TableY
0 голосов
/ 21 марта 2011
SELECT
 (SELECT Count(*) FROM table x WHERE id = 1) AS GrandTotal,
 (SELECT Count(*) FROM table WHERE id = 1 AND ...) AS Total,
 (SELECT TOP 1 fieldname FROM table ...) AS a

должно работать, но вам, возможно, придется присоединиться к фиктивной таблице, чтобы получить некоторую информацию о некоторых базах данных для

например,

SELECT 
 ...
FROM numbers_table n WHERE n.num = 1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...