2012-10-08 127 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语句中更改。

相关问题