2011-11-04 85 views
1

什麼,我目前擁有的僞代碼是TSQL加入到與集團另一個表通過

成本+ CostTax = CostActual

不過,我需要的是:

成本+稅收 - totalSumDiscounts = CostActual

我有一個SQL Select語句在連接3個表中計算成本+稅= CostActual。

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--------| 

回答

2
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 
+0

謝謝,然而,第二查詢返回2個結果,但您的查詢僅返回o ne記錄?有任何想法嗎? – Rya

+0

請顯示您的查詢和我的返回的兩條記錄。 – dnuttle

+0

我剛剛將結果作爲編輯發佈在問題部分。順便說一句,是的,該項目的價格是0,折扣10。這不是一個問題。 – Rya