-1
嗨我想获得作为一个记录每个不同AgreeId的金额的总和,并且它应该包含该结果的所有其他列作为一个记录好。这是我的SP。请帮助我。选择具有相同Id的列作为一个记录以及其他列
ALTER PROCEDURE sp_Contracts
@ClientId INT
,@LocationId INT = NULL
,@UserId INT = NULL
AS
BEGIN
SET NOCOUNT ON;
IF (@LocationId = 0)
BEGIN
SET @LocationId = NULL
END
SELECT
a.AgreementNumber
,a.RONo
,a.PONo
,round([dbo].func_GetAgreementTotalNew (a.AgreementId),2) as 'Total'
,round(a.Discount,2) as 'AdjustmentPostTax'
,round(p.Amount,2) as 'AmountPaid'
,p.PaymentMethod
FROM tblPay AS p
INNER JOIN tblAgree AS a ON p.AgreeId = a.AgreeId
WHERE
a.ClientId = @ClientId
AND a.[Status] <> 6
AND (
(
@LocationId IS NULL
AND (
A.CheckoutLocation IN (
SELECT LocationId
FROM [dbo].[tblUserLocations]
WHERE UserID = @userId
AND IsDeleted = 0
)
OR A.CheckoutLocation IS NULL
)
)
OR A.CheckoutLocation = @LocationId
)
END
您使用的是MySQL还是MS SQL Server?不要标记不涉及的产品。 – jarlh
此外,表设计将帮助在到达查询 – ArunGeorge
首先修复您的标记,这看起来像SQL服务器,所以删除mysql标记。其次,[不要用'sp_'](https://msdn.microsoft.com/en-us/library/dd172115(v = vs.100).aspx)前缀存储的特效。第三,提供一些样本数据和期望的输出。 – Tanner