2014-09-11 2 views
0

Я не могу использовать динамическое значение bcoz ошибки с сообщением «Ошибка поиска - ошибка базы данных SQL Server: невозможно выполнить агрегатную функцию для выражения, содержащего агрегат или подзапрос».Как создать временную таблицу при использовании Union?

Вот сценарий: Query 1

select pr.PRDCT,sum(CASE when pr.DEFINITIONCD='NOP' and pr.PERIOD='D' then pr.PRAMOUNT else 0 END) 
as 'NOP D' from PRODUCTWISE_REPORT pr group by pr.PRDCT 

Запрос 2

select DEFINITIONTYPECD from REPORTKPIMAPTXN where DEFINITIONTYPECD='NOP' and REPORTSEQ = (select REPORTSEQ from report_m where REPORTCD='MIS_Product_Wise_Report') 

Query 2 возвращает 'NOP'

так, когда я ставлю Query 2 в Запросе 1 для «NOP ', он выдает ошибку

Как решить эту проблему, когда у меня есть пользовательский динамический запрос 2?

+0

Просьба предоставить данные о выборке и желаемые результаты. –

ответ

0

Ваш второй запрос выглядит так, что его можно переписать с помощью объединения вместо этого подзаголовка. что-то вроде этого. Конечно, вы все еще будете иметь некоторые проблемы, потому что ваш первый запрос имеет два столбца, и это имеет только 1 столбец. Вам нужно будет добавить еще один столбец (может быть NULL) к этому запросу до того, как UNION будет работать.

select r.DEFINITIONTYPECD 
from REPORTKPIMAPTXN r 
INNER JOIN report_m m on m.REPORTSEQ = r.REPORTSEQ 
where DEFINITIONTYPECD = 'NOP' 
and r.REPORTCD = 'MIS_Product_Wise_Report' 
Смежные вопросы