-2

我已经写了这个查询;我需要帮助分配变量;这是来自其他查询,我该怎么做。

我怎样才能将它们结合在一起?

查询 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'

所以我需要查询 2 的 Ref 和 PaymentID 并在查询 1 中用作变量

4

3 回答 3

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
于 2012-10-08T14:31:22.397 回答
0

声明@yourvar

选择@yourvar = SUM(Credit)....

于 2012-10-08T14:31:00.787 回答
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 而 Ref 是一个 varchar 字段。如果它是其他数据类型,您可以在声明语句中进行更改。

于 2012-10-08T14:36:20.583 回答