SELECT DISTINCT TOP (100) PERCENT
APUI.APCo, APUI.UIMth, APUI.UISeq, APUI.Vendor, APUI.APRef,
APUI.InvDate, APUL.Line, APUL.LineType, APUL.Description,
APUL.GrossAmt, APUL.Job, APUR.Reviewer, APUL.GLAcct,
APUR.ApprvdYN, APUR.Rejected,
HQRV.Name, JCJM.Description AS Expr1, APVM.Name AS VenName,
APVM.Phone, APUL.MiscAmt, APUR.LoginName, APVM.SortName,
APVM.Vendor AS VenID, APUL.Units, APUL.UnitCost, APUL.UM,
HQMT.Description AS MAtDescr, APUL.GLCo,
APUL.MiscYN, APUI.Notes, APUL.Discount, APUL.SMCostType,
APUR.ApprovalSeq,
CAST(APUI.APCo AS decimal(10, 4)) + CAST(APUI.UISeq AS decimal(10, 4)) + CAST(APUI.Vendor AS decimal(10, 4)) + CAST(APUL.GrossAmt AS decimal(10, 4)) AS MATCHNUM,
CAST(APUI.APCo AS decimal(10, 4)) + CAST(APUI.UISeq AS decimal(10, 4)) + CAST(APUI.Vendor AS decimal(10, 4)) + CAST(APUL.GrossAmt AS decimal(10, 4)) AS MATCHNUM2
FROM
dbo.APUI AS APUI
LEFT OUTER JOIN
dbo.APUL AS APUL ON APUI.APCo = APUL.APCo
AND APUI.UIMth = APUL.UIMth
AND APUI.UISeq = APUL.UISeq
LEFT OUTER JOIN
dbo.APVM AS APVM ON APUI.VendorGroup = APVM.VendorGroup
AND APUI.Vendor = APVM.Vendor
LEFT OUTER JOIN
dbo.APUR AS APUR ON APUL.APCo = APUR.APCo
AND APUL.UIMth = APUR.UIMth
AND APUL.UISeq = APUR.UISeq
AND APUL.Line = APUR.Line
LEFT OUTER JOIN
dbo.JCJM AS JCJM ON APUL.JCCo = JCJM.JCCo
AND APUL.Job = JCJM.Job
LEFT OUTER JOIN
dbo.HQMT AS HQMT ON APUL.MatlGroup = HQMT.MatlGroup
AND APUL.Material = HQMT.Material
LEFT OUTER JOIN
dbo.HQRV AS HQRV ON APUR.Reviewer = HQRV.Reviewer
GROUP BY
APUI.APCo, APUI.UIMth, APUI.UISeq, APUI.Vendor, APUI.APRef,
APUI.InvDate, APUL.Line, APUL.LineType, APUL.Description,
APUL.GrossAmt, APUL.Job, APUR.Reviewer, APUL.GLAcct, APUR.ApprvdYN,
APUR.Rejected, HQRV.Name, JCJM.Description, APVM.Name, APVM.Phone,
APUL.MiscAmt, APUR.LoginName, APVM.SortName, APVM.Vendor, APUL.Units,
APUL.UnitCost, APUL.UM, HQMT.Description, APUL.GLCo, APUL.MiscYN,
APUI.Notes, APUL.Discount, APUL.SMCostType, APUR.ApprovalSeq,
CAST(APUI.APCo AS decimal(10, 4)) + CAST(APUI.UISeq AS decimal(10, 4)) + CAST(APUI.Vendor AS decimal(10, 4)) + CAST(APUL.GrossAmt AS decimal(10, 4))
WHERE
ApprovalSeq = (SELECT MIN(ApprovalSeq) AS hasball
FROM dbo.XS_Unapproved_Inv_Current_Approver
WHERE (MATCHNUM = MATCHNUM2))
我正在尝试在字段'MatchNum'
我一直在为此工作,请在我疯了之前帮忙!
以下是结果的屏幕截图。我试图以红色
返回记录答案 0 :(得分:1)
你需要一个右括号:
WHERE ApprovalSeq = (
SELECT min(ApprovalSeq) AS hasball
From dbo.XS_Unapproved_Inv_Current_Approver
Where (MATCHNUM = MATCHNUM2)
)
答案 1 :(得分:1)
按WHERE子句
移动组SELECT DISTINCT
TOP (100) PERCENT APUI.APCo, APUI.UIMth, APUI.UISeq, APUI.Vendor, APUI.APRef, APUI.InvDate, APUL.Line, APUL.LineType, APUL.Description, APUL.GrossAmt,
APUL.Job, APUR.Reviewer, APUL.GLAcct, APUR.ApprvdYN, APUR.Rejected, HQRV.Name, JCJM.Description AS Expr1, APVM.Name AS VenName, APVM.Phone,
APUL.MiscAmt, APUR.LoginName, APVM.SortName, APVM.Vendor AS VenID, APUL.Units, APUL.UnitCost, APUL.UM, HQMT.Description AS MAtDescr, APUL.GLCo,
APUL.MiscYN, APUI.Notes, APUL.Discount, APUL.SMCostType, APUR.ApprovalSeq , CAST(APUI.APCo AS decimal(10, 4)) + CAST(APUI.UISeq AS decimal(10,
4)) + CAST(APUI.Vendor AS decimal(10, 4)) + CAST(APUL.GrossAmt AS decimal(10, 4)) AS MATCHNUM, CAST(APUI.APCo AS decimal(10, 4))
+ CAST(APUI.UISeq AS decimal(10, 4)) + CAST(APUI.Vendor AS decimal(10, 4)) + CAST(APUL.GrossAmt AS decimal(10, 4)) AS MATCHNUM2
FROM
dbo.APUI AS APUI LEFT OUTER JOIN
dbo.APUL AS APUL ON APUI.APCo = APUL.APCo AND APUI.UIMth = APUL.UIMth AND APUI.UISeq = APUL.UISeq LEFT OUTER JOIN
dbo.APVM AS APVM ON APUI.VendorGroup = APVM.VendorGroup AND APUI.Vendor = APVM.Vendor LEFT OUTER JOIN
dbo.APUR AS APUR ON APUL.APCo = APUR.APCo AND APUL.UIMth = APUR.UIMth AND APUL.UISeq = APUR.UISeq AND APUL.Line = APUR.Line LEFT OUTER JOIN
dbo.JCJM AS JCJM ON APUL.JCCo = JCJM.JCCo AND APUL.Job = JCJM.Job LEFT OUTER JOIN
dbo.HQMT AS HQMT ON APUL.MatlGroup = HQMT.MatlGroup AND APUL.Material = HQMT.Material LEFT OUTER JOIN
dbo.HQRV AS HQRV ON APUR.Reviewer = HQRV.Reviewer
WHERE ApprovalSeq =
(
SELECT min(ApprovalSeq) AS hasball
From dbo.XS_Unapproved_Inv_Current_Approver
Where (MATCHNUM = MATCHNUM2))
GROUP BY APUI.APCo, APUI.UIMth, APUI.UISeq, APUI.Vendor, APUI.APRef, APUI.InvDate, APUL.Line, APUL.LineType, APUL.Description, APUL.GrossAmt, APUL.Job,
APUR.Reviewer, APUL.GLAcct, APUR.ApprvdYN, APUR.Rejected, HQRV.Name, JCJM.Description, APVM.Name, APVM.Phone, APUL.MiscAmt, APUR.LoginName,
APVM.SortName, APVM.Vendor, APUL.Units, APUL.UnitCost, APUL.UM, HQMT.Description, APUL.GLCo, APUL.MiscYN, APUI.Notes, APUL.Discount,
APUL.SMCostType, APUR.ApprovalSeq, CAST(APUI.APCo AS decimal(10, 4)) + CAST(APUI.UISeq AS decimal(10, 4)) + CAST(APUI.Vendor AS decimal(10, 4))
+ CAST(APUL.GrossAmt AS decimal(10, 4))
答案 2 :(得分:0)
这是一个基于您发布的语法有效的查询。我根本不了解你派生的MatchNum和MatchNum2的重点。
SELECT DISTINCT APUI.APCo
, APUI.UIMth
, APUI.UISeq
, APUI.Vendor
, APUI.APRef
, APUI.InvDate
, APUL.Line
, APUL.LineType
, APUL.Description
, APUL.GrossAmt
, APUL.Job
, APUR.Reviewer
, APUL.GLAcct
, APUR.ApprvdYN
, APUR.Rejected
, HQRV.Name
, JCJM.Description AS Expr1
, APVM.Name AS VenName
, APVM.Phone
, APUL.MiscAmt
, APUR.LoginName
, APVM.SortName
, APVM.Vendor AS VenID
, APUL.Units
, APUL.UnitCost
, APUL.UM
, HQMT.Description AS MAtDescr
, APUL.GLCo
, APUL.MiscYN
, APUI.Notes
, APUL.Discount
, APUL.SMCostType
, APUR.ApprovalSeq
, Cast(APUI.APCo AS DECIMAL(10, 4)) + Cast(APUI.UISeq AS DECIMAL(10, 4)) + Cast(APUI.Vendor AS DECIMAL(10, 4)) + Cast(APUL.GrossAmt AS DECIMAL(10, 4)) AS MATCHNUM
--, Cast(APUI.APCo AS DECIMAL(10, 4)) + Cast(APUI.UISeq AS DECIMAL(10, 4)) + Cast(APUI.Vendor AS DECIMAL(10, 4)) + Cast(APUL.GrossAmt AS DECIMAL(10, 4)) AS MATCHNUM2
FROM dbo.APUI AS APUI
LEFT OUTER JOIN dbo.APUL AS APUL ON APUI.APCo = APUL.APCo
AND APUI.UIMth = APUL.UIMth
AND APUI.UISeq = APUL.UISeq
LEFT OUTER JOIN dbo.APVM AS APVM ON APUI.VendorGroup = APVM.VendorGroup
AND APUI.Vendor = APVM.Vendor
LEFT OUTER JOIN dbo.APUR AS APUR ON APUL.APCo = APUR.APCo
AND APUL.UIMth = APUR.UIMth
AND APUL.UISeq = APUR.UISeq
AND APUL.Line = APUR.Line
LEFT OUTER JOIN dbo.JCJM AS JCJM ON APUL.JCCo = JCJM.JCCo
AND APUL.Job = JCJM.Job
LEFT OUTER JOIN dbo.HQMT AS HQMT ON APUL.MatlGroup = HQMT.MatlGroup
AND APUL.Material = HQMT.Material
LEFT OUTER JOIN dbo.HQRV AS HQRV ON APUR.Reviewer = HQRV.Reviewer
WHERE ApprovalSeq =
(
SELECT min(ApprovalSeq)
From dbo.XS_Unapproved_Inv_Current_Approver
--Where MATCHNUM = MATCHNUM2 Why bother checking this? Those values can't possibly ever not be equal, they are derived from the same expression
)
- 编辑 -
你在这里真正想做的事情还不是很清楚。这是我在黑暗中的最后一次拍摄。发布时,您需要发布所需的输出。我完全不知道是什么定义了一个" group"在您的数据中,您可能必须调整ROW_NUMBER窗口函数的PARTITION BY子句。如果我理解正确,至少应该让你指出正确的方向。
with SortedValues as
(
SELECT
ROW_NUMBER() over (PARTITION BY APUI.APCo order by APUR.ApprovalSeq) as RowNum
, APUI.APCo
, APUI.UIMth
, APUI.UISeq
, APUI.Vendor
, APUI.APRef
, APUI.InvDate
, APUL.Line
, APUL.LineType
, APUL.Description
, APUL.GrossAmt
, APUL.Job
, APUR.Reviewer
, APUL.GLAcct
, APUR.ApprvdYN
, APUR.Rejected
, HQRV.Name
, JCJM.Description AS Expr1
, APVM.Name AS VenName
, APVM.Phone
, APUL.MiscAmt
, APUR.LoginName
, APVM.SortName
, APVM.Vendor AS VenID
, APUL.Units
, APUL.UnitCost
, APUL.UM
, HQMT.Description AS MAtDescr
, APUL.GLCo
, APUL.MiscYN
, APUI.Notes
, APUL.Discount
, APUL.SMCostType
, APUR.ApprovalSeq
, Cast(APUI.APCo AS DECIMAL(10, 4)) + Cast(APUI.UISeq AS DECIMAL(10, 4)) + Cast(APUI.Vendor AS DECIMAL(10, 4)) + Cast(APUL.GrossAmt AS DECIMAL(10, 4)) AS MATCHNUM
FROM dbo.APUI AS APUI
LEFT OUTER JOIN dbo.APUL AS APUL ON APUI.APCo = APUL.APCo
AND APUI.UIMth = APUL.UIMth
AND APUI.UISeq = APUL.UISeq
LEFT OUTER JOIN dbo.APVM AS APVM ON APUI.VendorGroup = APVM.VendorGroup
AND APUI.Vendor = APVM.Vendor
LEFT OUTER JOIN dbo.APUR AS APUR ON APUL.APCo = APUR.APCo
AND APUL.UIMth = APUR.UIMth
AND APUL.UISeq = APUR.UISeq
AND APUL.Line = APUR.Line
LEFT OUTER JOIN dbo.JCJM AS JCJM ON APUL.JCCo = JCJM.JCCo
AND APUL.Job = JCJM.Job
LEFT OUTER JOIN dbo.HQMT AS HQMT ON APUL.MatlGroup = HQMT.MatlGroup
AND APUL.Material = HQMT.Material
LEFT OUTER JOIN dbo.HQRV AS HQRV ON APUR.Reviewer = HQRV.Reviewer
)
select *
from SortedValues
where RowNum = 1