0

一段时间以来,我一直在用头撞墙。我有一组数据,我需要在其中识别其交易组满足特定条件的客户。我粘贴了下面数据集的一小部分。我们可以称表为“A”。我希望我粘贴的方式在问题输出中是清晰的!

我正在寻找一种方法来仅识别其交易组满足以下条件的客户:

  • 在客户的事务组中,必须至少存在 1 种情况,即 TRANSTYPE 21 事务的 DATE于 TRANSTYPE 17 事务。(请注意,这里的日期是从 1900 年 1 月 1 日开始的典型 Excel“天数”,尽管这对于查询而言无关紧要。)

对此的任何帮助将不胜感激!

CUSTOMERID, TRANSID, TRANSTYPE, DATE

0027, 2, 17, 40948
0027, 3, 21, 40950
0085, 4, 17, 40955
0187, 14, 17, 41199
0187, 15, 21, 41214
0187, 16, 17, 41244
0513, 1, 17, 40940
0513, 5, 21, 40981
0565, 8, 21, 41032
0565, 11, 17, 41080
0715, 6, 17, 41009
0715, 7, 21, 41009
2780, 9, 17, 41039
2985, 10, 17, 41069
2985, 12, 21, 41091
2985, 13, 17, 41144
4

2 回答 2

2
SELECT a.CUSTOMERID
FROM a
  INNER JOIN a b ON a.CUSTOMERID = b.CUSTOMERID
WHERE a.DATE > b.DATE
  AND a.TRANSTYPE = 21
  AND b.TRANSTYPE = 17
于 2012-12-22T21:25:38.263 回答
1
Select CUSTOMERID, TRANSID, TRANSTYPE, DATE
from A a1
where TRANSTYPE=17
and Exists(select * from a a2 where a2.CUSTOMERID=a1.CUSTOMERID and a2.TRANSID=21 and a2.Date>a1.Date) 
于 2012-12-22T21:01:42.197 回答