0
현재 데이터가 없어도 항상 결과 집합을 반환하도록하는 방법은 무엇입니까?결과 집합이 반환되지 않음
이제 #TMP_SUMMARY1
은 행을 반환하지 않습니다.
아래 쿼리를 통해 행이없는 테이블을 반환하고이 메시지 탭 아래에 결과 탭이 표시되지 않도록하는 방법은 무엇입니까?
(0 행 적용됨)
이 날 악몽을 일으키는 상황이 설정 결과를 반환하지!
IF (@SUMMARY = 'Agent Summary')
BEGIN
DECLARE @cols1 AS NVARCHAR(MAX),
@colSum1 AS NVARCHAR(MAX),
@query1 AS NVARCHAR(MAX)
select @cols1 = STUFF((SELECT distinct ',' + QUOTENAME(Agent)
from #TMP_SUMMARY1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)') ,1,1,'')
print @cols1
select @colSum1 = STUFF((SELECT distinct ', Sum(' + QUOTENAME(Agent)+') as ' +QUOTENAME(Agent)
from #TMP_SUMMARY1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)') ,1,1,'')
print @colSum1
set @query1 = 'select
case when [PAYMENT TYPE] is null then ''*GRAND TOTAL'' else [Credit/Debit] end [Credit/Debit],
case when [PAYMENT TYPE] is null then '''' else [PAYMENT TYPE] end [PAYMENT TYPE],
'[email protected] +'
from
(
select [Agent] ,
[Credit/Debit],
[PAYMENT TYPE],
value
from #TMP_SUMMARY2
unpivot
(
value
for [Credit/Debit] in ([Amount Credit], [Amount Debit])
) unpiv
) src
pivot
(
sum(value)
for agent in ('[email protected]+')
) piv
group by GROUPING SETS ([Credit/Debit], [PAYMENT TYPE]), ([Credit/Debit])'
execute(@query1)
END
이 질문에 답할 수는 없으므로 (여기에 코멘트로 남겨 두겠다.)하지만 동적 SQL 내에서 SQL 주입에 대한 보호 기능을 갖기 위해서는'EXECUTE'보다는'sp_executesql'을 사용하는 것이 좋습니다. 질문. http://www.sommarskog.se/dynamic_sql.html#sp_executesql –