Nettの最高合計に基づいてAPPROVERを返すビューを作成しようとしています。私はnettの値の合計を返すことができますが、複数の 'コード'が使用されているインスタンスがあるので、私のビューは2つ以上の行を返すことができます。最高の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として返すためには1行を返す必要があります。
私は関数を使用するルートを下げる必要があると思います。
これは意味があると思いますが、何か助けていただければ幸いです!
質問を改善する方法についてはこちらをご確認ください... 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