나는 작업이 간단한 쿼리를 미세 (내 실제 쿼리가, 난 그냥 예로서이 일을 만들어 훨씬 더 복잡 이것보다) :쿼리는 독립적으로 잘 작동하지만, 기능을 사용할 때 오류를 제공
select mc_id, mc_referencia
from movcuentas1
where tm_id = 1 and mc_concepto = 'Amort Int'
UNION
select mc_id, mc_referencia
from movcuentas2
where tm_id = 2 and mc_concepto = 'Amort Capital'
order by mc_referencia
하지만 이와 같은 함수 내에서 사용하려고 :
USE [dozfin]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[SampleF] (@mes as integer, @anio as integer)
RETURNS TABLE
AS
RETURN
(
select mc_id, mc_referencia
from movcuentas
where tm_id = 1 and mc_concepto = 'Amort Int'
UNION
select mc_id, mc_referencia
from movcuentas
where tm_id = 2 and mc_concepto = 'Amort Capital'
order by mc_referencia
)
저장 트링, 그것은 나에게이 오류 제공합니다 "메시지 1033, 수준 15, 상태 1, 프로 시저 SampleF, 라인 (15) ORDER BY 절이 뷰, 인라인 함수, 파생 테이블, 하위 쿼리 및 공통 테이블에서 유효하지 않습니다. 표현식은 TOP 또는 FOR XML도 지정되지 않은 한. "
아이디어가 있으십니까?
함수를 사용할 때'ORDER BY'를 쓰면 안됩니다 :'SELECT * FROM [dbo]. [SampleF] (1,2017) ORDER BY mc_referencia' 또는 이와 비슷한 것 – Lamak
당신의 기능에서 오히려 무의미합니다. 이 쿼리를 사용하는 쿼리가이 순서대로 반환된다는 것을 의미하지는 않습니다. 결과를 주문하려면 최종 쿼리에 있어야합니다. 이에 대한 해결 방법은 없습니다. –
당신이 맞습니다. 단지 최종 쿼리를 수정하기위한 소스 코드에 대한 액세스 권한이 없습니다. 내가 해결 방법을 찾고 있어요. 도와 줘서 고마워. –