-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

必要なフィールドを変数として宣言できます。

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フィールドだと思います。他のデータ型の場合は、declareステートメントで変更できます。

于 2012-10-08T14:36:20.583 に答える
0

@yourvarを宣言する

@yourvar = SUM(Credit)...を選択します。

于 2012-10-08T14:31:00.787 に答える