预期输出(**低于OrgnztnNumberID只是一个例子):**
OrgnztnNumber CardStatusCode TrnsctnTypeCode
7317704 Expired 607
7317704 Active 607
表格数据
Select OrgnztnNumber, CardStatusCode, TrnsctnTypeCode from [CSB10020_ProfileApplctn].[dbo].[CST01140_CreditCard] with(nolock)
OrgnztnNumber CardStatusCode TrnsctnTypeCode
2316 Expired 601
2316 Active 013
6688 Active 600
6688 Expired 604
6695 Active 013
6695 Active 607
7616760 Expired 604
7616760 Active 604
7616760 Active 013
6728 Expired 600
6728 Active 013
6731 Active 013
7317704 Expired 607
7317704 Active 607
7317704 Active 013
如何在具有相同organisaton id但具有不同cardstatuscode的表中过滤出具有相同传输代码的记录(例如,一个是"过期"另一个是"活动")
答案 0 :(得分:3)
尝试:
DECLARE @t TABLE
(
OrgnztnNumber NVARCHAR(MAX) ,
CardStatusCode NVARCHAR(MAX) ,
TrnsctnTypeCode NVARCHAR(MAX)
)
INSERT INTO @t
VALUES ( '7317704', 'Expired', '607' ),
( '7317704', 'Active', '607' ),
( '7317705', 'Active', '607' ),
( '7317705', 'Active', '607' )
SELECT DISTINCT t1.*
FROM @t t1
JOIN @t t2 ON t2.OrgnztnNumber = t1.OrgnztnNumber
AND t2.TrnsctnTypeCode = t1.TrnsctnTypeCode
AND t2.CardStatusCode <> t1.CardStatusCode
ORDER BY t1.OrgnztnNumber, t1.TrnsctnTypeCode , t1.CardStatusCode
输出:
OrgnztnNumber CardStatusCode TrnsctnTypeCode
7317704 Expired 607
7317704 Active 607