私はこのような検索データのクエリを持っています:
select top 100 * from Payment
where PayId is not null and
PayAccount like '%10158002%'and
PayCustName like '%XXXX XXXXX%'and
PayAmount like '%429000%'and
PayAmountPaid like '%429000%'and
PayResponse like '%00%'and
PayRefNo like '%101306000013%'and
cast(PayDatetime as date) = ( select convert(date , '03/06/2013', 103))
order by PayDatetime DESC
そして私にこのような結果を与えてください:
PayId PayAccount PayCustName PayAmount PayAmountPaid PayResponse PayRefNo PayScreenText PayReceiptText PayDatetime PayBankCode
49 10158002 XXXX XXXXX 429000 429000 00 101306000013 xxx xxx 2013-06-03 11:43:18.210 112
そして、他のテーブルとの内部結合を行うことによってPayResponse 00
テキストを生成するには、このようにする必要があります:success
select para.Value2
from Payment pay
inner join
Parameter para
on pay.PayResponse = para.Value1
そして、refnoが別のテーブルで使用されているか、別の内部結合を使用して使用されていないかを確認する必要がありますが、ストアドプロシージャを使用しました:
ALTER PROCEDURE [dbo].[Rintis_StatusReversal]
@RefNoPay as varchar (20),
@Count as int output,
@Response as int output,
@Text as varchar(20) output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
Select @Count = COUNT(*)
from
payment Pay
inner join
Reversal Rev
on Pay.PayRefNo = Rev.PayRefNo
where Pay.PayRefNo = @RefNoPay
if @Count > 0
Begin
SET @Response = 1
SET @Text = 'Reversed'
End
Else
Begin
SET @Response = 0
SET @Text = 'Paid'
End
select @Response , @Text
END
success
またはである @text 値を取得したいプロシージャを実行しますreversed
。そして、最初のクエリ結果に値を入力したい。
だから私が取得したいクエリは次のようなものです:
PayId PayAccount PayCustName PayAmount PayAmountPaid PayResponse PayRefNo PayScreenText PayReceiptText PayDatetime PayBankCode RefStatus
49 10158002 XXXX XXXXX 429000 429000 00 101306000013 xxx xxx 2013-06-03 11:43:18.210 112 Success
それは可能ですか?私はまだ複雑なSQLクエリと混同しています。助けてくれてありがとう