添加一列的值

时间:2014-01-17 10:26:28

标签: sql sql-server-2008

我试图通过根据键值添加一列的值来获取记录。这是我的查询:

SELECT    
    PM_ProductPayment.ProjectId, SalesDetail.SalesPerson,
    PM_ProductCost.ProductCost, dbo.PM_ProductPayment.ProductPayment, 
    dbo.PM_ProductPayment.PaymentDate    
FROM    
    dbo.PM_ProductPayment 
INNER JOIN 
    dbo.PM_Product ON dbo.PM_ProductPayment.ProjectId = dbo.PM_Product.ProductId    
INNER JOIN 
    dbo.PM_ProductCost ON dbo.PM_ProductPayment.ProductId = dbo.PM_ProductCost.ProductId    
INNER JOIN 
    dbo.SalesDetail ON dbo.PM_Product.SalesPersonId = dbo.SalesDetail.ID 

我得到的结果是:

Output

现在,我希望通过为每个产品和最后一个付款日期添加“付款”来获得单行。

请优化我的查询或建议任何其他更好的方法来做到这一点..

谢谢,

1 个答案:

答案 0 :(得分:2)

SELECT pay.ProjectId, 
       sum(pay.ProductPayment),
       max(pay.PaymentDate) 
FROM dbo.PM_ProductPayment pay
INNER JOIN dbo.PM_Product pro ON pay.ProjectId = pro.ProductId    
INNER JOIN dbo.PM_ProductCost cos ON pay.ProductId =cos.ProductId    
INNER JOIN dbo.SalesDetail sal ON pro.SalesPersonId = sal.ID 
GROUP BY pay.ProjectId