Sql server 从组返回最大值
我正在尝试创建一个视图,该视图将根据净值的最高总和返回APPROVER。我可以返回净值的总和,但在某些情况下使用了多个“代码”,所以我的视图可以返回2行或更多行。要求根据最高净值返回批准人 以下是我的看法:Sql server 从组返回最大值,sql-server,tsql,Sql Server,Tsql,我正在尝试创建一个视图,该视图将根据净值的最高总和返回APPROVER。我可以返回净值的总和,但在某些情况下使用了多个“代码”,所以我的视图可以返回2行或更多行。要求根据最高净值返回批准人 以下是我的看法: CREATE VIEW UDF_APPROVER AS WITH UDF_BUDGAPPROVER (_ID , USERID , Nett , ANALYSIS) AS ( ISNULL(HEADER_PRIMARY,0) '_ID', INITIATOR_ID as 'USERID',
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,因此它将始终只返回我想要的详细信息行
我需要返回一行以将审批人返回为TR01,因为1-2102-60具有最高的净值
我认为我需要继续使用函数
我希望这是有意义的,任何帮助都将被感激 你可以这样试试
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 MAX(Nett) AS Nett
,__PR_ID
,__USER_ID
,NCATEGORYCODE5 AS 'APPROVER'
,CODE
FROM GENERAL_ACCOUNTS
JOIN UDF_BUDGAPPROVER ON CODE = ANALYSIS
WHERE _ID = 15
GROUP BY __PR_ID
,__USER_ID
,NCATEGORYCODE5
,CODE
你可以这样试试
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 MAX(Nett) AS Nett
,__PR_ID
,__USER_ID
,NCATEGORYCODE5 AS 'APPROVER'
,CODE
FROM GENERAL_ACCOUNTS
JOIN UDF_BUDGAPPROVER ON CODE = ANALYSIS
WHERE _ID = 15
GROUP BY __PR_ID
,__USER_ID
,NCATEGORYCODE5
,CODE
请在这里检查如何改进问题…发布一些示例数据和您的预期输出。这可能很棘手,因为这是客户数据。从所附的屏幕截图中,我只想看到第1行的审批人。涉及3个表,订单标题(1行)、包含货币值和分析的明细行(1行或多行)。表3包含审批人,分析用于加入代码表。请检查此处如何改进问题…发布一些示例数据和预期输出。这可能很棘手,因为这是客户数据。从所附的屏幕截图中,我只想看到第1行的审批人。涉及3个表,订单标题(1行)、包含货币值和分析的明细行(1行或多行)。表3包含审批人,分析用于连接到代码表。我认为这不起作用,因为审批人不明确,因此我无法按其分组。我认为这不起作用,因为审批人不明确,因此我无法按其分组。