내가 thusly 히 내가 다른 테이블에 다시 가입 할 수 있습니다 중간 값의 테이블을 반환하는 저장 SQL 서버 기능, 만들려고 노력 해요 :열 별칭 오류
CREATE FUNCTION [dbo].getmedian (@varPartionBy1 int,@varPartionBy2 int, @varForTieBreak int, @varForMeasure int)
RETURNS TABLE
AS
RETURN
(
SELECT
@varPartionBy1,
@varPartionBy2,
AVG(@varForMeasure)
FROM
(
SELECT
@varPartionBy1,
@varPartionBy2,
ROW_NUMBER() OVER (
PARTITION BY @varPartionBy1, @varPartionBy2
ORDER BY @varForMeasure ASC, @varForTieBreak ASC) AS RowAsc,
ROW_NUMBER() OVER (
PARTITION BY @varPartionBy1, @varPartionBy2
ORDER BY @varForMeasure ASC, @varForTieBreak DESC) AS RowDesc
from
[fakename].[dbo].[temptable] bp
) bp
WHERE
RowAsc IN (RowDesc, RowDesc - 1, RowDesc + 1)
GROUP BY @varPartionBy1, @varPartionBy2
)
이
을 이동이것은 다음과 같은 오류를 반환합니다. "메시지 8155, 수준 16, 상태 2, 프로 시저 getmedian'bp'의 열 1에 대해 열 이름이 지정되지 않았습니다." - UDF의 컨텍스트에서 열에 대한 테이블 별칭을 지정하는 방법을 이해할 수 없다는 것을 나타냅니다.
오류를 해결하려면 어떻게해야합니까?
이것은 내 첫 USF이므로 주 질문에 대답하는 동안 다른 유용한 디자인 통찰력에 감사드립니다. 어떤 도움을 주셔서 감사합니다!
내부 선택에서 변수의 별칭 인'@ varPartionBy1 as varPartionBy1'을 제공 한 다음 외부 선택 호출에서 변수 대신 새 별칭 이름을 제공하십시오. – Taryn
유혹에 빠져있는 샘플 데이터의 일부를 보여주는 질문을 작성한 다음 주어진 매개 변수 값에서 기대하는 결과를 보여줄 것을 제안합니다. 여기서는 코드에서 실제로 이것이 무엇을하는지 추측 할 수 없습니다. –