TSQL使用Group By连接到另一个表

TSQL使用Group By连接到另一个表,tsql,join,group-by,Tsql,Join,Group By,我目前拥有的伪代码是 成本+成本税=实际成本 但是,我需要: 成本+税费-总消费折扣=实际成本 我在连接3个表时有一个SQL Select语句,用于计算成本+税收=成本实际值 SELECT dbo.XMP_EventUsers.ID, dbo.XMP_EventUsers.EventID, dbo.XMP_EventUsers.UserID, CONVERT(VARCHAR(20),dbo.XMP_EventUsers.DateCreated, 100) AS DateCreated,

我目前拥有的伪代码是

成本+成本税=实际成本

但是,我需要:

成本+税费-总消费折扣=实际成本

我在连接3个表时有一个SQL Select语句,用于计算成本+税收=成本实际值

SELECT     dbo.XMP_EventUsers.ID, dbo.XMP_EventUsers.EventID, dbo.XMP_EventUsers.UserID,
CONVERT(VARCHAR(20),dbo.XMP_EventUsers.DateCreated, 100) 
AS DateCreated, CONVERT(VARCHAR, dbo.XMP_Event.Cost, 1) AS Cost, dbo.Users.FirstName, dbo.Users.LastName, 
dbo.XMP_Event.Cost + dbo.XMP_Event.CostTax - dbo.XMP_EventUsers.Paid AS Outstanding, 
dbo.XMP_Event.Cost +     dbo.XMP_Event.CostTax AS CostActual
FROM         dbo.XMP_Event INNER JOIN
dbo.XMP_EventUsers ON dbo.XMP_Event.ID = dbo.XMP_EventUsers.EventID INNER JOIN
dbo.Users ON dbo.XMP_EventUsers.UserID = dbo.Users.UserID
另一个表记录应用于总成本的折扣。此查询汇总要应用的折扣

    SELECT UserID, SUM([Amount]) AS Amount
FROM [dbo].[XMP_EventPromoUsers]
GROUP BY UserID
如何将第二个结果与第一个结果合并,以便在select语句中为每个记录减去最终成本的折扣总数

谢谢你的帮助

-R

下面是答案1的示例结果

查询1返回:

ID|EventID|UserID|DateCreated|Cost|FirstName|LastName|Outstanding|CostActual|FinalValue|
51|14-----|41----|Aug 11 2011|0.00|John-----|Smith---|-120-------|0.00------|-10-------|
问题2

UserID-|Amount----|

41-----|10--------|

96-----|30--------|

谢谢,但是,第二个查询本身返回两个结果,但是您的查询只返回一条记录?有什么想法吗?请显示您的查询返回的两条记录和我的查询返回的一条记录。我刚刚将结果作为编辑发布在问题部分。顺便说一句,是的,这个项目的价格是0,有10的折扣。这不是问题。嗯,查询2的结果只显示2个字段,我的查询有更多字段。但简而言之,我的查询应该返回的是user、event、eventuser和eventpromotionusers的每个组合的记录。似乎有两条记录符合本案例用户ID的41和96。为了澄清,第二次查询返回了哪些记录,返回了Sum([Amount])?“第二次查询返回了哪些记录,返回了Sum([Amount])?”是的,正确。两个结果。用户ID 41和96。
SELECT     
    dbo.XMP_EventUsers.ID, dbo.XMP_EventUsers.EventID, dbo.XMP_EventUsers.UserID,
    CONVERT(VARCHAR(20),dbo.XMP_EventUsers.DateCreated, 100) AS DateCreated, 
    CONVERT(VARCHAR, dbo.XMP_Event.Cost, 1) AS Cost, 
    dbo.Users.FirstName, dbo.Users.LastName, 
    dbo.XMP_Event.Cost + dbo.XMP_Event.CostTax - dbo.XMP_EventUsers.Paid AS Outstanding, 
    dbo.XMP_Event.Cost +     dbo.XMP_Event.CostTax AS CostActual,
    dbo.XMP_Event.cost + dbo.XMP_Event.CostTax - Users2.Amount AS FinalValue
FROM    
    dbo.XMP_Event 
    INNER JOIN dbo.XMP_EventUsers 
        ON dbo.XMP_Event.ID = dbo.XMP_EventUsers.EventID 
    INNER JOIN dbo.Users 
        ON dbo.XMP_EventUsers.UserID = dbo.Users.UserID
    INNER JOIN (SELECT UserID, SUM([Amount]) AS Amount
        FROM [dbo].[XMP_EventPromoUsers]
        GROUP  BY UserID) Users2
        ON dbo.Users.UserID = Users2.UserID