2012-10-08 65 views
-2

我寫過這個查詢;我需要幫助分配變量;這是來自其他查詢,我該怎麼做。T SQL-使用一個查詢的結果作爲其他查詢的變量

如何將它們結合在一起?

查詢1

Select SUM(Credit) 
FROM(SELECT TOP 1 Credit 
FROM (SELECT DISTINCT TOP 2 Ref, Credit, PaymentID 
FROM Payment where Ref = '????' AND PaymentID <= '????' 
ORDER BY PaymentID DESC) 
a ORDER BY PaymentID) 
b 

查詢2

Select Ref, PaymentID 
From Payment 
Where PaymentDate = '2012-09-23' 

SO我需要查詢2的Ref和PaymentID和作爲變量在查詢中使用1

+0

結合它們是什麼意思?最終的結果是什麼?在第二個查詢中使用結果_where_? – Oded

回答

2

通過使用連接

SELECT DISTINCT TOP 2 Ref, Credit, PaymentID  
FROM Payment 
    inner join 
    (Select Ref, PaymentID From Payment Where PaymentDate = '2012-09-23') query2 
     on Payment.Ref = query2.Ref and Payment.PaymentID <= query2.PaymentID  
ORDER BY PaymentID DESC 
0

聲明@yourvar

選擇@yourvar = SUM(Credit)....

0

你可以聲明你需要爲變量字段:

DECLARE @REF  varchar(20) 
DECLARE @PaymentID int 

SET @REF = (Select Ref 
       From Payment 
       Where PaymentDate = '2012-09-23') 

SET @PaymentID = (Select PaymentID 
        From Payment 
        Where PaymentDate = '2012-09-23') 

Select SUM(Credit) 
FROM(SELECT TOP 1 Credit 
FROM (SELECT DISTINCT TOP 2 Ref, Credit, PaymentID 
FROM Payment where Ref IN(@REF) AND PaymentID <= @PaymentID 
ORDER BY PaymentID DESC) 
a ORDER BY PaymentID) 
b 

編輯:我猜PaymentID是INT和參考是一個varchar領域。如果是其他數據類型,可以在declare語句中更改。

相關問題