Выберите из вложенного выберите T-SQL - PullRequest
14 голосов
/ 09 августа 2011

Я хочу изменить данные, выбрав их во внутреннем запросе и посчитать одного из них модифицированным .. Выдает ошибку ..

select count(cvs) from
(
  select 
  cvs,
  (case Citycode when 123 then 'test' else 'other' end) as CityName ,
  (case ProductCode when '000' then 'test3' when 'ss' then 'xtr' else 'ddd' end) as CardName
  from Applications
)

Ответы [ 4 ]

54 голосов
/ 09 августа 2011

вам нужно дать псевдоним подзапросу:

select count(x.cvs) from
(
  select 
  cvs,
  (case Citycode when 123 then 'test' else 'other' end) as CityName ,
  (case ProductCode when '000' then 'test3' when 'ss' then 'xtr' else 'ddd' end) as CardName
  from Applications
) x
1 голос
/ 09 августа 2011

Почему бы просто не сделать это вместо этого?

SELECT COUNT(cvs)
    FROM Applications
0 голосов
/ 09 августа 2011

Две вещи, которые я вижу вне поля зрения:

1 - вам не нужен вложенный подзапрос для того, что вы делаете в примере.Вы можете так же легко сделать:

SELECT COUNT(cvs) FROM application

2 - вам нужен псевдоним для подзапроса, например (<subquery>) as SubQ

0 голосов
/ 09 августа 2011

Похоже, ваш запрос может быть упрощен до ..

SELECT COUNT(cvs) FROM Applications

Есть ли причина, по которой у вас есть вложенный выбор, и вы игнорируете другие выбранные столбцы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...