2016-12-14 17 views
0

То, что я собираюсь сделать, это иметь оставшийся столбец порядка, который был бы результатом следующего известково: [orderedvalue] - [totaljobvalue]Invalid ошибка Column Name при попытке использовать псевдоним Transact Sql

select [orderedvalue] = sum([ordervalue]), 
     jobtype, 
     [totaljobvalue] = (select sum([total value]) 
          from job 
          where jobType = quotetrackerorders.jobType 
          and reference like '%40330%') 
from quotetrackerorders 
where quoteref like '%40330%' 
group by jobtype 

Я попытался код ниже:

select [orderedvalue] = sum([ordervalue]), 
     jobtype, 
     [totaljobvalue] = (select sum([total value]) 
          from job 
          where jobType = quotetrackerorders.jobType 
          and reference like '%40330%'), 
     [orderremaining] = [orderedvalue] - [totaljobvalue] 
from quotetrackerorders 
where quoteref like '%40330%' 
group by jobtype 

Однако это не работает, потому что он не распознает ни один из псевдонимов столбцов, как ... то, что я могу сделать, чтобы достичь следующего результата:

  • JobType = Роспись стен
  • Orderedvalue = 311654 (пример значения)
  • TotalJobvalue = 3446 (пример значения)
  • OrderRemaining = 64654 (пример значения)

Вы знаете, как я могу заставить SQL распознавать эти псевдонимы как столбцы?

ответ

2

Рассмотрим следующий

Select A.* 
     ,SomeName = [orderedvalue] - [totaljobvalue] 
From (
     Select [orderedvalue] = sum([ordervalue]) 
       , jobtype 
       , [totaljobvalue] = (select sum([total value]) 
            from job 
            where jobType = quotetrackerorders.jobType 
            and reference like '%40330%') 
     from quotetrackerorders 
     where quoteref like '%40330%' 
     group by jobtype 
) A 
+0

Это, кажется, работает, мне нужно, чтобы проверить его дальше. Но не могли бы вы сломать его? Я бы очень хотел понять этот вопрос. Особенно A. * part –

+1

@ JoséFerreira. Подпроцесс выполняет основную часть работы. Верхний запрос сможет использовать результаты без дублирования работы –

+0

Cool @John Cappelletti, насколько я понял, что делает этот бит: выберите A. * выбирает все столбцы таблицы A (сам) –

Смежные вопросы