Nett의 합계가 가장 큰 것을 기준으로 APPROVER를 반환하는보기를 만들려고합니다. nett 값의 합계를 반환 할 수 있지만 여러 '코드'가 사용되는 인스턴스가 있으므로 내보기에서 둘 이상의 행을 반환 할 수 있습니다. 요구 사항은 가장 높은 Nett를 기준으로 APPROVER를 반환하는 것입니다. 항상 단지 내가 원하는 세부 행을 반환 할 수 있도록그룹의 최대 값을 반환합니다.
CREATE VIEW UDF_APPROVER
AS
WITH UDF_BUDGAPPROVER (_ID , USERID , Nett , ANALYSIS)
AS
(
ISNULL(HEADER_PRIMARY,0) '_ID',
INITIATOR_ID as 'USERID',
SUM(NETT) AS 'Nett',
ANALYSIS
FROM ORDER_HEADER
JOIN ORDER_DETAIL ON HEADER_PRIMARY = HEADER_LINK
GROUP BY
HEADER_PRIMARY,
INITIATOR_ID
ANALYSIS
)
SELECT
Nett ,
__PR_ID ,
__USER_ID ,
NCATEGORYCODE5 AS 'APPROVER' ,
CODE ,
FROM GENERAL_ACCOUNTS
JOIN UDF_BUDGAPPROVER ON CODE = ANALYSIS
WHERE _ID = 15
이 GUI는 _ID로 전달됩니다 :
여기 내보기입니다.
1-2102-60이 Nett가 가장 높기 때문에 APPROVER를 TR01로 반환하려면 하나의 행을 반환해야합니다.
나는 함수를 사용하는 길로 갈 필요가 있다고 생각한다.
나는 이것이 의미가 있기를 바랍니다, 어떤 도움을 주시면 감사하겠습니다!
문제를 개선하는 방법에 여기에서 확인하시기 바랍니다 ... HTTPS : //spaghettidba.com/2015/04/24/how-to-post-at- sql-questions-on-a-public-forum/ – TheGameiswar
일부 샘플 데이터와 예상 출력을 게시하십시오. – StackUser
클라이언트 데이터이기 때문에 까다로운 일일 수 있습니다. 첨부 된 스크린 샷에서 1 행에 APPROVER 만보고 싶습니다. 돈 가치 및 분석이 포함 된 주문 헤더 (1 행), 세부 행 (1 행 이상)이 3 개 있습니다. 표 3에는 APPROVER가 포함되어 있으며 분석은 코드의 테이블에 조인하는 데 사용됩니다. – DeanS